2.2.4.5 Indizierte Adressierung mit Verschiebung

[gesichtete Version][gesichtete Version]
(Die Seite wurde neu angelegt: „Unter der indizierten Adressierung mit Verschiebung versteht man <br /> <hr /> <sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/dee…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Unter der indizierten Adressierung mit Verschiebung versteht man
Unter der indizierten Adressierung mit Verschiebung versteht man eine Erweiterung der [[Direkte/absolute Adressierung|direkten/absoluten Adressierung]]. Dabei wird zu dem im Befehl angegebenen Operanden (Verschiebung) noch der Wert eines Registers hinzuaddiert. Die Summe entspricht dann der [[Adressierungsarten|effektiven Adresse]] der anzusprechenden Speicherzelle.
 
Auch dazu ein Beispiel anhand der aus dem Video [http://youtu.be/cX5XLc9e_g4 Vom Quellcode zum Prozessor] bekannten Ausgangslage:
 
Man nehme den Befehl "LOAD 13" aus dem [http://youtu.be/cX5XLc9e_g4 Video]. 13 ist damit die [[Adressierungsarten|effektive Adresse]] der anzusprechenden Speicherzelle. Um es etwas deutlicher zu machen, betrachtet man diesen Befehl im  Zweiadressformat:
 
'''LOAD''' ACC, 13<br />
 
Der Inhalt der Speicherzelle 13 wird in das Register Akkumulator geladen. Bis hierher ist es noch die [[Direkte/absolute Adressierung|direkte bzw. absolute Adressierung]].
 
Der Schritt zur indizierten Adressierung mit Verschiebung besteht nun darin zu erkennen, dass die "Verschiebung" 13 aus dem Beispielbefehl immer von Speicherzelle 0 aus geschieht. Man könnte also sagen: "0+13" ist die [[Adressierungsarten|effektive Adresse]] der anzusprechenden Speicherzelle.
 
Statt der Addition von Null in "0+13" könnte aber auch eine Addition mit dem Inhalt eines Registers stattfinden. Abhängig vom Inhalt dieses Registers geschieht dann eine Verschiebung um 13. Diesen Befehl schreibt man dann als:
 
'''LOAD''' ACC, 13(R2)<br />
 
Die Bedeutung ist: Lade den Inhalt der Speicherzelle (R2+13) in den Akkumulator. Ist in R2 der Wert 123 gespeichert, so wird auf die [[Adressierungsarten|effektive Adresse]] 123+13 = 136 zugegriffen.<br />
<br />
<br />
<hr />
<hr />
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
</sub>
</sub>

Version vom 4. September 2013, 12:50 Uhr

Unter der indizierten Adressierung mit Verschiebung versteht man eine Erweiterung der direkten/absoluten Adressierung. Dabei wird zu dem im Befehl angegebenen Operanden (Verschiebung) noch der Wert eines Registers hinzuaddiert. Die Summe entspricht dann der effektiven Adresse der anzusprechenden Speicherzelle.

Auch dazu ein Beispiel anhand der aus dem Video Vom Quellcode zum Prozessor bekannten Ausgangslage:

Man nehme den Befehl "LOAD 13" aus dem Video. 13 ist damit die effektive Adresse der anzusprechenden Speicherzelle. Um es etwas deutlicher zu machen, betrachtet man diesen Befehl im Zweiadressformat:

LOAD ACC, 13

Der Inhalt der Speicherzelle 13 wird in das Register Akkumulator geladen. Bis hierher ist es noch die direkte bzw. absolute Adressierung.

Der Schritt zur indizierten Adressierung mit Verschiebung besteht nun darin zu erkennen, dass die "Verschiebung" 13 aus dem Beispielbefehl immer von Speicherzelle 0 aus geschieht. Man könnte also sagen: "0+13" ist die effektive Adresse der anzusprechenden Speicherzelle.

Statt der Addition von Null in "0+13" könnte aber auch eine Addition mit dem Inhalt eines Registers stattfinden. Abhängig vom Inhalt dieses Registers geschieht dann eine Verschiebung um 13. Diesen Befehl schreibt man dann als:

LOAD ACC, 13(R2)

Die Bedeutung ist: Lade den Inhalt der Speicherzelle (R2+13) in den Akkumulator. Ist in R2 der Wert 123 gespeichert, so wird auf die effektive Adresse 123+13 = 136 zugegriffen.


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