Sobald ein Rechner während der Ausführung eines Maschinenbefehls laden oder speichern soll, muß
er gleich Antworten auf zwei Fragen finden: „Woher?" und „Wohin?".
Wie wir in 3 Der Von-Neumann-Rechner gesehen haben, können Quell- und Zielort
sowohl eine Zelle eines RAMs als auch ein Register sein (mit Ein-/Ausgabe über die Grenzen des VNR-Modells
hinaus befaßt sich 4.2 Prinzipien der Ein-/Ausgabe). Für die Auswahl
aus den Zellen eines RAMs benötigt man eine Adresse, ein Binärwort also. Ebenfalls ein Binärwort
benötigt man zur Auswahl zwischen mehreren Allzweckregistern – praktisch jeder real-existente Prozessor besitzt
mehr Register als nur den Akkumulator des VNR-Konzeptes. Dieses Binärwort wird im Steuerwerk
zu einer Belegung der oe- und we-Leitungen aller Allzweckregister decodiert, so daß genau das
gewünschte Register auf Schreiben oder Lesen eingestellt wird. Da wir oben
gesehen haben, daß ein RAM nichts anderes als n Register mit einer Auswahllogik vermittels oe und
we ist (wiewohl einerseits meistens platzsparender zu realisieren als n Register und somit preisgünstiger,
andererseits aber auch langsamer), darf auch ein Binärwort zur Registerauswahl als Adresse bezeichnet werden.
Wenn man nun, in einem konkreten Rechner, beide Arten von Adressen auf die gleiche Länge bringt, indem man
die kürzere von beiden mit Nullen auffüllt, kann man diese Adresse um ein weiteres Bit für die Auswahl
„RAM oder Register?" ergänzen. Damit darf man die Fragen „Woher?" und „Wohin?" allgemeingültig
als Probleme der Adressierung bezeichnen.
Das ändert sich auch nicht, wenn man sich daran erinnert, daß der VNR auch einen Fall kennt, in dem
ein Quellwert direkt aus dem Befehlsregister stammt (LDA absolut). Man braucht lediglich eine be-stimmte Adresse
für diesen Fall zu reservieren, das Steuerwerk sorgt bei Anliegen dieser Adresse für das Treiben des
Datenbusses durch das niederwertige Byte etc. des Befehlsregisters.
Das folgende Applet zeigt die Varianten, die der ehemals verbreitete Motorola 68000 allein für den Fall kennt,
einen Wert in ein Register laden zu sollen.
Hier sollte die Ausgabe des Java-Applets &Adressierungsarten& erscheinen. Wenn Sie statt dessen diesen Text sehen, unterst&tzt ihr Browser kein Java!
Carsten Kelling 1996 (); letzte Änderung: 17. September 1997 |