Adressierung (Rechnerarchitektur)

Adressierung ist in der Programmierung das Festlegen, auf welche Operanden (z. B. Datenfelder) sich ein Maschinenbefehl bezieht. Die Operanden können auf unterschiedliche Art und Weise adressiert werden (Adressierungsart oder Adressierungsmodus), zum Beispiel durch direkte Angabe im Befehl oder durch einen Verweis auf eine Speicheradresse. Bestimmend für die anzuwendende Adressierungsart sind der Operationscode und die im Maschinenbefehl nur in codierter Form enthaltenen Angaben über die Operanden.

Bei der Assemblerprogrammierung legt der Programmierer durch die Wahl bestimmter Operationscodes (und der dazugehörenden Parameter) die Adressierungsart selbst fest. Bei Nutzung höherer Programmiersprachen werden die Maschinenbefehle von Compilern automatisch erzeugt (und damit auch deren Adressierungsarten festgelegt), meist ohne direkten Einfluss des Programmierers. Der Prozessor dekodiert die Maschinenbefehle bei der Ausführung und führt die entsprechenden Adressrechnungen sowie das Laden der im Befehl zu verwendenden Daten durch.

Die verschiedenen Adressierungsarten sind ein Aspekt des Prozessordesigns. Sie sind innerhalb einer gegebenen Befehlssatzarchitektur definiert und bestimmen, wie für jede Instruktion der Maschinensprache die tatsächliche (physische) Speicheradresse ihrer Operanden ermittelt/errechnet wird, zum Beispiel mithilfe der Informationen, die in Registern gespeichert sind und/oder Konstanten innerhalb des Maschinenbefehls.

Bezieht sich ein Befehl auf mehrere Operanden (Quell- und/oder Zielfelder), so sind die zur Adressierung erforderlichen Angaben für jeden Operanden getrennt erforderlich/vorhanden. Weitere im Maschinenbefehl enthaltene Parameter (wie Angaben zur Länge von Operanden, Sprungindikatoren aus logischen Befehlen wie gleich oder größer) werden zur Adressierung im engeren Sinn nicht verwendet.


Developed by StudentB