Assemblerprogrammierung der 80x86-Prozessoren (Pentium)


Der Befehlssatz der Intel 80x86-Prozessoren

Einfache Assemblerprogramme kann man mit den DOS-Hilfsmitteln schreiben. Dazu muss man die MS-DOS-Eingabeaufforderung starten,
dann debug tippen. Mit diesem Programm kann man nach dem Kommando a 100 Assembler-Befehle für die Additionsaufgabe 3+4 eingeben:

Beispiel Addition

 img71.gif

Mit dem Kommando t (trace) wird das eingegebene Programm schrittweise ausgeführt und jeweils der Inhalt der Register des Prozessors sowie die Werte der Flags angezeigt.

Beim nächsten Beispiel werden weitere Register verwendet und Funktionen des Betriebssystem MS-DOS verwendet, um Zeichen auf den Bildschirm zu schreiben.

Beispiel Bildschirmausgabe

 

Hier sehen wir, dass das AX-Register den Inhalt 0902 erhalten hat. Der Befehl mov (move) transportiert Daten. Hier wird der Wert, der im Befehl steht, direkt ins entsprechende Register geladen (unmittelbare Adressierung).

MOV AX,0902h

Lade AX mit dem Wert 0902 (hexadezimal)

MOV BX,15

Lade BX mit dem Wert 0015

MOV CX,1

Lade CX mit dem Wert 0001

INT 10h

DOS-Funktion aufrufen (Zeichen auf den Bildschirm ausgeben)

  • in AX steht bei 09 (Funktionsnummer) 02 (Zeichennummer)
  • in BX steht die Farbnummer (00hv h=0..F v=0..F Farbnummern)
  • in CX steht die Anzahl der Zeichen

MOV AX,4C00

AX mit den Parametern für Programm beenden laden

INT 21h ;DOS-Exit

DOS-Funktion Progamm beenden aufrufen

NOP

No operation (nichts tun)

Mit dem Kommando g (go) kann das Programm gestartet werden. Ein Smiley-Zeichen in eigenartiger Farbe wird ausgegeben. Danach wird das Propramm automatisch beendet.

img69.gif

Um weiterarbeiten zu können, muss das debug-Programm wieder gestartet werden:

img70.gif 

Es sollen nun 15 Zeichen auf den Bildschirm ausgegeben werden. Dazu muss der Befehl in Speicherzelle 0106 umgeändert werden in
mov cx,000f. Anschließend wird das Programm wieder mit dem Kommando g gestartet.

img68.gif

Mit q (quit) kann man das debug-Programm beenden.

Weitere Kommandos

Das Debug-Programm versteht noch weitere Kommandos, die man durch Eingabe eines Fragezeichens erhält:

img72.gif

Um das letzte Programm auf die Festplatte abspeichern zu können, sind folgende Schritte notwendig:

-n zeichen.com

(name) Dateiname wird festgelegt

-rcx
:0010

(read CX) die Anzahl der zu speichernden Bytes wird ins CX-Register eingelesen, hier 10 (hexadezimal!)

-w

(write) die Datei wird auf die Festplatte geschrieben

Mit dem Kommando l kann man das Programm wieder in den Speicher laden.

Mit u 100 kann man sich die Befehle wieder anzeigen lassen.

Mit d kann man sich den Inhalt der Speicherzellen anzeigen lassen.