Indexregister
Die Indexregister sind spezielle Register eines Prozessors. In ihnen werden Versätze zu Adressen für den Speicherzugriff, Sprung und Rücksprung und Laufzähler abgelegt. Im theoretischen Entwurf des Von-Neumann-Rechners sind sie trotz Funktion als Datenablage im Rechnerwerk eingeordnet und liefern dem Steuerwerk die Möglichkeit, Speicher dynamisch zu verwalten.
Mittels Indexregistermodifikation ist es möglich, sich von der statischen Adressierung zu lösen und dynamisch Speicherzellen anzusprechen. Ein Indexregister ermöglicht es, auf eine Speicheradresse zuzugreifen, deren Adresse vorher mittels anderer arithmetischer Operationen zur Laufzeit des Programms bestimmt wurde. Höhere Programmiersprachen besitzen dadurch die Möglichkeit, Felder und Zeiger zu verwenden.
Viele moderne Rechnerarchitekturen können jedes allgemeine Register als Indexregister verwenden, wodurch die Bezeichnung oftmals obsolet geworden ist.
Beispiel
Ein im Speicher abzulegender Wert steht an der 123. Stelle eines bestimmten Speicherblocks. Das Indexregister hätte in diesem Fall den Wert 123 (bzw. 122 wenn wie in der Informatik üblich ab 0 gezählt wird). Dabei ist die Startadresse des Speicherblocks unerheblich, denn diese steht in einem anderen Register. Die Adressierung dieses im Speicher abgelegten Wertes wird dadurch etwas von der tatsächlichen Lage im Speicher entkoppelt, da diese nicht mehr direkt, sondern relativ (relativ zum Start des Speicherblocks) angegeben wird.
Literatur
- IA-32 – Intel Architecture Software Developers Manual. Volume 1: Basic Architecture.
- Peter Wollschlaeger: Assembler: Erfolgreich starten − sicher nutzen. Markt & Technik, 1991, ISBN 3-87791-156-0.