2.3.2 Basisregister

[gesichtete Version][gesichtete Version]
(LOOP Upgrade: loop_index and youtubehd)
(LOOP Upgrade: loop_index and youtubehd)
Zeile 32: Zeile 32:
== Indizierte Adressierung mit Verschiebung ==
== Indizierte Adressierung mit Verschiebung ==
<p>
<p>
Das Basisregister wird zur bereits bekannten <loop_index id="5fa97845349e4">Indizierte Adressierung mit Verschiebung|Adressierung, indiziert mit Verschiebung</loop_index>[[Indizierte Adressierung mit Verschiebung|indizierten Adressierung mit Verschiebung]] genutzt. Dabei wird diese Adressierungsart "<loop_index id="5fa97845349ea">versteckte Adressierung|Adressierung, versteckt</loop_index>versteckt" eingesetzt, d.h. per Definition werden die Operanden aller Befehle immer als [[Indizierte Adressierung mit Verschiebung|Verschiebung]] betrachtet, bei der Befehlsausführung wird automatisch der Inhalt des Basisregisters hinzuaddiert. Eine Ausnahme bilden lediglich die <loop_index id="5fa97845349ef">Unmittelbare Adressierung</loop_index><loop_index id="5fa978458312d">Adressierung, unmittelbar</loop_index>[[Unmittelbare Adressierung|unmittelbar adressierten Operanden]], da diese keine Speicherzelle adressieren, sondern als konkrete Zahl (<loop_index id="5fa97845349f4">Konstante</loop_index>Konstante) interpretiert werden müssen.
Das Basisregister wird zur bereits bekannten <loop_index id="5fa97845349e4">Indizierte Adressierung mit Verschiebung|Adressierung, indiziert mit Verschiebung</loop_index>[[Indizierte Adressierung mit Verschiebung|indizierten Adressierung mit Verschiebung]] genutzt. Dabei wird diese Adressierungsart "<loop_index id="5fa97845349ea">versteckte Adressierung</loop_index><loop_index id="5fa9789d4a151">Adressierung, versteckt</loop_index>versteckt" eingesetzt, d.h. per Definition werden die Operanden aller Befehle immer als [[Indizierte Adressierung mit Verschiebung|Verschiebung]] betrachtet, bei der Befehlsausführung wird automatisch der Inhalt des Basisregisters hinzuaddiert. Eine Ausnahme bilden lediglich die <loop_index id="5fa97845349ef">Unmittelbare Adressierung</loop_index><loop_index id="5fa978458312d">Adressierung, unmittelbar</loop_index>[[Unmittelbare Adressierung|unmittelbar adressierten Operanden]], da diese keine Speicherzelle adressieren, sondern als konkrete Zahl (<loop_index id="5fa97845349f4">Konstante</loop_index>Konstante) interpretiert werden müssen.
</p>
</p>



Version vom 9. November 2020, 19:13 Uhr

Basisregister

Das Basisregister (engl. base register) ist ein spezielles Register auf der CPU. Es wurde in früheren Rechnern eingesetzt, da damit (unter anderem) zwei Probleme sehr einfach gelöst werden konnten. (In heutigen Rechnern findet es üblicherweise keinen Einsatz mehr, es wurde durch die MMU abgelöst.)

Bei den beiden erwähnten Problemen handelt es sich um:

  • Wie können mehrere Prozesse gleichzeitig im Hauptspeicher platziert werden?
  • Wie können Prozesse temporär aus dem Hauptspeicher ausgelagert werden? (Üblicherweise geschieht die Auslagerung auf die Festplatte, von der sie zu einem späteren Zeitpunkt wieder eingelagert werden.)

Beide Fälle werden auf den kommenden Seiten ausführlich erläutert, zunächst jedoch ein wenig Information vorab.


Definition: Basisregister

Definition

Das Basisregister befindet sich auf der CPU und enthält als Wert die Adresse der Speicherstelle mit dem ersten Befehl des aktiven Prozesses.

Solange sich nur ein einzelnes Programm im Hauptspeicher befindet, ist der Wert des Basisregisters gleich Null, denn ab Speicherstelle 0 beginnt das Programm. In den folgenden Unterkapiteln wird beschrieben, wie auch mehrere Programme gleichzeitig im Hauptspeicher Platz finden. In dieser Situation kann sich der Wert des Basisregisters ändern.


Indizierte Adressierung mit Verschiebung

Das Basisregister wird zur bereits bekannten indizierten Adressierung mit Verschiebung genutzt. Dabei wird diese Adressierungsart "versteckt" eingesetzt, d.h. per Definition werden die Operanden aller Befehle immer als Verschiebung betrachtet, bei der Befehlsausführung wird automatisch der Inhalt des Basisregisters hinzuaddiert. Eine Ausnahme bilden lediglich die unmittelbar adressierten Operanden, da diese keine Speicherzelle adressieren, sondern als konkrete Zahl (Konstante) interpretiert werden müssen.


Das Basisregister auf der CPU

Die folgende Abbildung zeigt die CPU mit dem neu eingeführten Basisregister. In vorangegangenen Bildern zur CPU war an dieser Stelle das Register R3 angesiedelt. Man kann sich gerne vorstellen, dass das Register R3 weiterhin auf der CPU existiert, nur eben aus Platzgründen nicht mehr eingezeichnet ist.

Cpu11-base.jpg