2.2.4.4 Registerindirekte Adressierung

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 21: Zeile 21:
* '''JUMP''' (R3)
* '''JUMP''' (R3)
* '''ADD''' ACC, (ACC), #5
* '''ADD''' ACC, (ACC), #5
<br />Diskutiere die Bedeutungen in deiner Lerngruppe!
<br />Diskutiere die Bedeutungen in deiner Lerngruppe!<br />
(R1, R2 und R3 bezeichnen Register auf der CPU, siehe [[Gesamtbild eines Von-Neumann-Rechners]])
</loop_area>
</loop_area>
<br />
<br />

Version vom 4. September 2013, 11:18 Uhr

Bei der registerindirekten Adressierung bezeichnet der Operand ein Register auf der CPU, der in diesem Register abgelegte Wert bezeichnet die effektive Adresse der Speicherzelle.

Handelt es sich um ein 32-Bit-Register, so stehen damit auch 32 Bit für die Adressierung einer Speicherzelle im Hauptspeicher zur Verfügung. Bei einem 64-Bit-Register entsprechend 64 Bit.

Aus Aufgabe 1 der Seite Aufgaben & Co. zum Befehlsformat ist bereits die Schreibweise

ADD ACC, ACC, 14

bekannt. Hier erfolgt zweimal die Registeradressierung des Akkumulator. Um jetzt eine registerindirekte Adressierung zu erreichen, muss die Schreibweise verändert werden:

ADD ACC, (ACC), 14

Die hier eingeführten Klammern um das bezeichnete Register definieren die registerindirekte Adressierung.

Die Bedeutung dieses Befehls ist damit: Addiere den Wert der Speicherzelle im Hauptspeicher, die durch den im Register (ACC) gespeicherten Wert addressiert wird, und den in Speicherzelle 14 gespeicherten Wert. Das Ergebnis schreibe in den Akkumulator.

Aufgabe

Aufgabe 1

Welche Bedeutungen haben die folgenden Befehle:

  • ADD R1, ACC, 8
  • SUB ACC, 10, (R2)
  • JUMP (R3)
  • ADD ACC, (ACC), #5


Diskutiere die Bedeutungen in deiner Lerngruppe!
(R1, R2 und R3 bezeichnen Register auf der CPU, siehe Gesamtbild eines Von-Neumann-Rechners)



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png