Prozessorgrundlagen: Von-Neumann-Architektur, Teil 3

Adressierungsarten im Von-Neumann-Prozessor

Die Bearbeitung von Befehlen im Von-Neumann-Prozessor benötigt Operanden, in denen der Bezug zu den Daten hergestellt wird. Hierzu existiert eine Vielzahl von Möglichkeiten, auf diese Daten zuzugreifen. Grundsätzlich sollte dabei deutlich sein, dass abgesehen von einigen Ausnahmen wie NOP (No Operation), WAIT und STOP alle Befehle Operandenzugriff in irgendeiner Form benötigen, häufig sogar mehrere.

Eine grobe Einteilung der Operandenadressierung ist dadurch möglich, dass man implizite und explizite Angaben in der Befehlskodierung vorsieht. Eine implizite Kodierung liegt dann vor, wenn der Operand bereits eindeutig in dem Befehl bestimmt wird. Dies trifft beispielsweise auf Instruktionen wie CLC (Clear Carry Flag) zu. In allen anderen Fällen sind die Operanden jedoch explizit anzugeben. In dieser Kategorie kann man wiederum grob dahingehend einteilen, ob die Daten in internen Registern des Prozessors oder im externen Speicher- sowie Ein-/Ausgabebereich liegen.

Für eine weiter gehende Analyse ist dann die Interpretation der Daten notwendig. Gemäß dem Von-Neumann-Modell können die Daten nicht a priori in ihrer syntaktischen Bedeutung identifiziert werden; dies erfolgt ausschließlich im Kontext des Programmflusses, so auch im Sinne der Adressierung. Beispielsweise sind die Assembler-Kodierungen für die beiden Befehle

LD AX, #10
LD AX, 10

nahezu identisch. Im ersten Fall soll die Zahl 10 in den Akkumulator AX geladen werden. Das bedeutet, dass der Prozessor nach der Dekodierung des Befehls einen Operandenzugriff auf die zu kopierende Zahl benötigt. Im zweiten Fall ist der eigentliche Operand 10 nicht als Zahl zu interpretieren, sondern als Adresse für die Speicherstelle, wo ein Wert zur Kopie in den Akkumulator zu finden ist. Konsequenterweise sind nun auch zwei Operandenzugriffe notwendig, da der erste nur die Adresse und damit die Referenz für den zweiten Zugriff lädt und das benötigte Datum erst hiermit erhältlich ist.

Für eine formale und informelle Beschreibung der wichtigsten Adressierungsarten ist folgende Definition sehr hilfreich:

Definition

Abkürzungen und Schreibweisen für die formale Beschreibung des Operandenzugriffs [1].

reg: PC

Internes Register wird adressiert, PC als Program Counter (spezielles Register)

adr:

Referenzadresse auf eine externe Speicherzelle im Speicher- beziehungsweise Ein-/Ausgabebereich

dat:

Datum (Inhalt einer Speicherzelle oder eines Registers)

()

Indirektion (Inhalt einer Speicherzelle oder eines Registers wird als Adresse interpretiert)

++

Inkrement (Pre- oder Postinkrement, je nach Stellung zum Operanden hin)

--

Dekrement (Pre- oder Postdekrement, je nach Stellung zum Operanden hin)

->

Kopieroperator (Operand links wird auf Operand rechts kopiert)