6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Rechnergrundlagen Teil 2 - 34 - Prof. Dipl.-Ing. Komar<br />
Nachfolgendes Beispiel erzeugt eine lauffähige COM -Datei zur Abfrage der DOS-Versionsnummer.<br />
A CS:100<br />
;__________________________________________________________<br />
; Beispiel zur Assemblierung mit dem DOS-Debugger aus einer Textdatei.<br />
; Aufruf: DEBUG < VERSION.ASM > VERSION.LST<br />
; In der Datei VERSION.LST werden alle Meldungen (auch Fehlermeldungen) des Debuggers abgelegt.<br />
; Die lauffähige COM-Datei findet sich in VERSION .COM<br />
;___________________________________________________________<br />
; Assembliere den Programmcode ab CS:100<br />
ORG 100 ;diese Assembleranweisung ist hier eigentlich überflüssig<br />
; durch A CS:100<br />
MOV DX, 0200 ; lade Adresse String 1<br />
MOV AH, 09 ; Ausgabe des Textes<br />
INT 21 ; per INT 21<br />
;<br />
MOV AH, 30 ; Abfrage der DOS-Version<br />
INT 21 ;<br />
;<br />
PUSH AX ; Zwischenspeichern auf dem Stapel<br />
;<br />
MOV DL, 30 ; Convert Main Nr.<br />
ADD DL,AL ;<br />
MOV AH, 02 ; Ausgabe Character<br />
INT 21 ;<br />
;<br />
MOV DL, 2E ; write “.“<br />
INT 21 ;<br />
;<br />
POP AX ; vom Stapel zurückholen<br />
;<br />
MOV AL,AH ; untergeordnete Versionsnummer<br />
MOV AH, 0 ;in ungepackte BCD-Ziffer in AH wandeln<br />
AAM<br />
MOV DL, 30 ; Convert Second Nr.<br />
ADD DL,AH ;<br />
MOV AH, 02<br />
INT 21 ; write char.<br />
;<br />
MOV DX, 0220 ; lade Adr. String 2<br />
MOV AH, 09 ; Ausgabe CR, LF<br />
INT 21 ; per INT 21<br />
;<br />
MOV AX, 4C00 ; Terminate Process normal<br />
INT 21 ; Programmbeendigung und Rückkehr nach DOS<br />
; ; Ende des Programmcodes<br />
ORG 200 ; Assembliere die Text-Konstanten ab CS:200, diese Anweisung erzeugt keinen Maschinencode<br />
DB "MS -DOS Version $"<br />
ORG 220 ; mit CR (Carriage Return = 0D h ) und LF (Line Feed = 0A h ) wird der Cursor auf den<br />
DB 0A, 0D,"$" ; Anfang der nächsten Zeile positioniert<br />
; speichere den Code in der Datei VERSION.COM mit den Debug-Befehlen N(ame) und W(rite)<br />
; hier muß eine Leerzeile folgen !!! damit der Debug-Assembler-Mode beendet wird<br />
N VERSION.COM<br />
R BX<br />
0<br />
R CX<br />
200<br />
W CS:100<br />
Q<br />
Listing : VERSION.ASM