2.2.4.5 Indizierte Adressierung mit Verschiebung

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:
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 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.
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:
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:
Zeile 15: Zeile 15:
'''LOAD''' ACC, 13(R2)<br />
'''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 />
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.
 
Die '''indizierten Adressierung mit Verschiebung''' ist ein bedeutender Meilenstein, wenn es um die gleichzeitige Verwaltung mehrerer Programme im Hauptspeicher geht.
<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:53 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.

Die indizierten Adressierung mit Verschiebung ist ein bedeutender Meilenstein, wenn es um die gleichzeitige Verwaltung mehrerer Programme im Hauptspeicher geht.


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