Informatik

Der Computer als System

Der Computer als System

Die Assemblersprache des fiktiven Mikrocomputers

Für einen Mikroprozessor muss nun die zugehörige Maschinensprache definiert werden. Um eine einfache Softwarerealisation eines Mikroprozessors zu ermöglichen (im Unterricht wurde eine „Hardwarevariante“ mit Locad2002 aufgebaut), soll der „Computer“ die folgende Struktur haben:
1. Speicher: Der Arbeitsspeicher enthält 256 von 0 bis 255 nummerierte Speicherplätze für Binärwörter beliebiger Länge, welche durch die Angabe ihrer Adresse (=Speicherplatznummer) angesprochen, d.h. gelesen oder beschrieben werden können. Operationscode und Operandencode stehen immer in derselben Zelle. Die Codierung erfolgt hexadezimal.
2. Der Prozessor besteht aus Rechenwerk und Steuerwerk. Das Rechenwerk führt auf Veranlassung des Steuerwerks sämtliche arithmetischen und logischen Operationen durch. Folgende Arbeitsregister sind Bestandteil des Computers:
a) Erstes Arbeitsregister ist der Akkumulator (AX); er nimmt jeweils den Inhalt einer Zelle eines Datenspeichers auf.
b) Zweites Arbeitsregister ist ein Speicherregister (BX), das ebenfalls Inhalte einer Zelle eines Datenspeichers aufnehmen kann.
c) Das dritte Arbeitsregister ist das Befehlsregister (OP): es nimmt jeweils den ersten Teil einer Zelle des Programmspeichers, und zwar den momentan auszuführenden Befehl auf.
d) Das vierte Arbeitsregister ist das Datenregister (DR); es nimmt den zweiten Teil einer Zelle des Programmspeichers, die gewünschte Speicherzelle, auf.
e) Das fünfte Arbeitsregister ist der Befehlszähler (IP). Er beinhaltet eine Adresse des Speichers, nämlich die des Befehls, der gerade zur Ausführung ansteht.
f) Das sechste Arbeitsregister beinhaltet eine 1. 
3. Eingaben und Ausgaben erfolgen direkt über die Speicherzellen, eine eigene Eingabe/Ausgabeeinheit entfällt momentan.

Transportbefehle:

MOV [nn],AX

11nn

Speichere Akkuinhalt in Adresse nn

MOV AX,nn

12nn

Lade Konstante nn in den Akkumulator

MOV BX,[nn]

13nn

Lade den Inhalt von Adresse nn in das Register BX

MOV [nn],BX

14nn

Speichere Inhalt von Register BX in Adresse nn

MOV BX,nn

15nn

Lade Konstante in Register BX

MOV BX, AX

1600

Speichere den Akkumulatorinhalt in Register BX

MOV AX, BX

1700

Speichere Inhalt von Register BX in Akku

Verarbeitungsbefehle:

ADD AX,[nn]

20nn

Addiere zum Akkuinhalt den Inhalt von Adresse nn

ADD AX, nn

21nn

Addiere zum Akkuinhalt nn

ADD AX, BX

2200

Addiere zum Akkuinhalt BX

SUB AX,[nn]

23nn

Subtrahiere vom Akkuinhalt den Inhalt von Adresse nn

SUB AX,nn

24nn

Subtrahiere vom Akkuinhalt nn

SUB AX, BX

2500

Subtrahiere vom Akkuinhalt den Inhalt von BX

SUB AX, AX

2600

Setze Akkuinhalt auf Null

MUL AX,[nn]

27nn

Multipliziere den Akkuinhalt mit dem von Adresse nn

MUL AX, nn

28nn

Multipliziere den Akkuinhalt mit nn

MUL AX, BX

2900

Multipliziere den Akkuinhalt mit dem Inhalt von Register BX

DIV AX,[nn]

2Ann

Dividiere den Akkuinhalt durch den Inhalt von Adresse nn

DIV AX, nn

2Bnn

Dividiere den Akkuinhalt durch nn

DIV AX, BX

2C00

Dividiere den Akkuinhalt durch den Inhalt von Register BX

INC [nn]

2Dnn

Erniedrige den Wert von nn um 1

INC AX

2E00

Erniedrige den Wert vom Akku um 1

INC BX

2F00

Erniedrige den Wert von BX um 1

DEC [nn]

30nn

Erhöhe den Wert von nn um 1

DEC AX

3100

Erhöhe den Wert vom Akku um 1

DEC BX

3200

Erhöhe den Wert von BX um 1

Sprungbefehle

JMP [nn]

40nn

Springe nach Adresse nn, d.h. schreibe Adresse in den Befehlszähler

JEZ [nn]

41nn

Springe nach Adresse nn, wenn Akkuinhalt =0, andernfalls erhöhe Befehlszähler um 1

JNE [nn]

42nn

Springe nach Adresse nn, wenn Akkuinhalt <>0, andernfalls erhöhe Befehlszähler um 1

JLZ [nn]

43nn

Springe nach Adresse nn, wenn Akkuinhalt <0, andernfalls erhöhe Befehlszähler um 1

JLE [nn]

44nn

Springe nach Adresse nn, wenn Akkuinhalt <=0, andernfalls erhöhe Befehlszähler um 1

JGZ [nn]

45nn

Springe nach Adresse nn, wenn Akkuinhalt >0, andernfalls erhöhe Befehlszähler um 1

JGE [nn]

46nn

Springe nach Adresse nn, wenn Akkuinhalt >=0, andernfalls erhöhe Befehlszähler um 1

Sonstige Befehle

HALT

9900

Programmende

 

V.Berg • Bergisch Gladbach • ImpressumHaftungsausschluss