18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!