Adressrechner (Maschinenbefehl)

Prozessoren lassen sich durch eine Vielzahl von Eigenschaften unterscheiden. Eine der elementarsten Eigenschaften ist die Anzahl der Adressangaben im Maschinenbefehl. Diese Eigenschaft ist ausschlaggebend für die Rechnerstruktur und den Prozessortyp.

0-Adressbefehle / Stackrechner

Datenwerk eines 0-Adressrechner

Die Befehle der ALU sind 0-Adressbefehle mit eingeschlossener/impliziter Adressierung das heißt, dass die ALU-Operationen direkt aus dem Top Of Stack (bzw. Top Of Stack – 1) lesen und schreiben. Beim Schreiben auf das TOS werden die darunterliegenden Stackinhalte nach unten verschoben und beim Lesen werden die darunterliegenden Stackinhalte nach "oben angehoben".

Jedoch erfolgen alle Speicherzugriffe über PUSH Var und POP Var, sprich 1-Adressbefehle.

Beispiel

Berechnung

Assemblercode

PUSH X
PUSH Y
ADD
PUSH C
MULT
POP A

Siehe auch UPN.

1-Adressbefehle / Akkumulatorrechner

Die Befehle der ALU sind 1-Adressbefehle mit eingeschlossener/impliziter Adressierung als 1. Quelle (und Ziel) und mit Speicherzugriff als 2. Quelle. Die Speicherzugriffe erfolgen auch über 1-Adressbefehle, als Beispiel an dem VIP LDA X (Lade X in das Akkumulator-Register) und STA X (Speichere den Inhalt des Akkumulator-Registers in X)

Datenwerk eines 1-Adressrechner

Beispiel

Berechnung

Assemblercode(am Beispiel des VIP)

LDA X
ADD Y
MULT C
STA A

2-Adressbefehle / typisch CISC-Rechner

Datenwerk eines 2-Adressrechner

Das Akkumulator-Register ist durch einen allgemeinen Registerspeicher ersetzt worden, im Bild der GPR. Die Benutzung der Speicherzellen dient beispielsweise als Indexregister, Datenregister, Adressregister usw.

Transportbefehle und Befehle in der ALU sind 2-Adressbefehle mit einer Registeradresse als 1. Quelle und Ziel und einer Register-/Speicheradresse als zweite Quelle.

Beispiel

Berechnung

Assemblercode

MOVE.W R1,X
ADD.W R1,Y
MULT.W R1,C
MOVE.W A,R1

3-Adressbefehle / typisch RISC-Rechner

Datenwerk eines 3-Adressrechner

Das Akkumulator-Register ist durch einen allgemeinen Registerspeicher ersetzt worden, im Bild der GPR. Dieser Registerspeicher erlaubt einen 3-Port-Speicherzugriff, das heißt zwei Lesezugriffe und einen Schreibzugriff zeitgleich. Somit wird eine Unterstützung der Fließbandverarbeitung gewährleistet.

Beispiel

Berechnung

Assemblercode

LD.W r1, X               ; (r_x) laden
LD.W r2, Y               ; (r_y) laden
ADD r1, r1, r2           ; r1 := r1 + r2
LD.W r2, C               ; (r_c) laden
MULT r2, r2, r1          ; r2 := r2 * r1
ST.W r2, A               ; (r_a) zurückschreiben

Literatur

  • Andrew S. Tanenbaum: Computerarchitektur. Strukturen – Konzepte – Grundlagen. 5. Auflage. München 2005, ISBN 3-8273-7151-1
  • Thomas Flik: Mikroprozessortechnik und Rechnerstrukturen. 7. Auflage. Springer, Berlin 2005, ISBN 3-540-22270-7
  • Matthias Menge: Moderne Prozessorarchitekturen. Prinzipien und ihre Realisierungen. 1. Auflage. Springer, Berlin 2005, ISBN 3-540-24390-9

Auf dieser Seite verwendete Medien

3-adressbefehle risc rechner.svg
Datenwerk eines 3-Adressrechner
1-adressbefehle akkumulatorrechner.svg
Datenwerk eines 1-Adressrechner
Datenwerk eines 2-Adressrechner.svg
Datenwerk eines 2-Adressrechner
0-adressbefehle stackrechner.svg
Datenwerk eines 0-Adressrechners