Aufgabe |
Bitte das Beispielprogramm
Hexadezimalausgabe
studieren; die Kommentare im Programm sollten dabei helfen. Die 3 Subroutinen im letzten Abschnitt "numeric output routines" vervollständigen die Hexadezimalausgabe aus der Vorlesung. Übungsaufgabe ist zunächst, dieses Programm zu verstehen und zum Laufen zu bringen. Anschließend besteht die Aufgabe, eine Subroutine zur Ausgabe eines Registerinhalts in dezimaler Form zu erstellen. Überlegen Sie sich ein Verfahren hierzu und überlegen Sie anhand der Intel-Code-Tabelle, welche Maschinenbefehle für die arithmetischen Teile eingesetzt werden können. |
In der Konfigurationsdatei sollten der Sektion
[autoexec]
(gegen Ende) ein paar Anweisungen
hinzugefügt werden, z.B., unter der Annahme, das Arbeitsverzeichnis
solle H:\
heißen:
# im Labor: [autoexec] mount H H:\ mount T L:\TGI\ path H:\bin;T:\bin\dos;T:\bin;%PATH% # sonst unter Windows z.B.: [autoexec] mount H C:\DOSBox path H:\bin;%PATH% # oder unter Linux / MacOS: [autoexec] mount H ~/dosbox mount C ~/dosbox/c path H:\bin;%PATH% # Zum Laden des deutschen Tastatur-Layouts (unter Windows nicht nötig): keyb gr # oder, nach Installation des Keyboard-Treibers (s.u.): keyb3.com # um initial in das Arbeitsverzeichnis zu wechseln: H: # außerdem, um die Darstellung zu vergrößern, im Abschnit [sdl]: [sdl] output=overlay #windowresolution=1280x960 windowresolution=1024x768 #windowresolution=800x600(Kurzeinrichtung s.u.)
Statt keyb gr
kann auch der nette Tastaturtreiber
keyb3
geladen werden, der zuvor zu installieren wäre:
keyb3.com.
Zum Übersetzen von Assemblerprogramm innerhalb der DOSBox sind
die beiden Programme nasm.exe und
CWSDPMI (s.o.) in der DOSBox zu
installieren, indem sie in ein Verzeichnis gebracht werden, das
in der DOSBox im %PATH% erreichbar ist, z.B. (s.o.) das
Unverzeichnis bin
des Arbeitslaufwerks, das mit
mount H ...
zugänglich gemacht wird.
Es ist auch möglich, eine „Cross-Assemblierung“ mit einem in
cygwin/Linux/MacOS installierten nasm durchzuführen,
sofern (wie sowieso für die Übungen angeraten) als
Übersetzungsziel eine .com
-Datei angegeben wird.
Wer den MSDOS-Debugger ausprobieren möchte, findet ihn unter DEBUG.COM sowie eine Kurzbeschreibung unter MSDOS debugger.
cd
mkdir dosbox dosbox/bin dosbox/c
cd dosbox/bin
wget http://public.bht-berlin.de/wolff/Materialien/nasm/nasm.exe
wget http://public.bht-berlin.de/wolff/Materialien/nasm/CWSDPMI.EXE
wget http://public.bht-berlin.de/wolff/Materialien/dos/keyb3.com
cd
cd Library/Preferences
cat >> DOS* << --
mount H ~/dosbox
mount C ~/dosbox/c
path H:\bin;%PATH%
keyb gr
keyb3
H:
--
(s.a. DOSBox and Mac OS X im DOSBox Wiki)