Bereichsübergreifende, registerindirekte Adressierung
Programmanweisungen, die mit der bereichsübergreifenden, registerindirekten Adressierung arbeiten, setzen sich zusammen aus einer Operation und den folgenden Teilen: Operandenkennzeichen [Adreßregister-Kennung, Operand].
Das Adreßregister und der Operand müssen zusammen in eckigen Klammern angegeben werden. Der vollständige Operand der Daten setzt sich zusammen aus dem Operandenkennzeichen, dem Inhalt eines Adreßregisters und einem Versatz-Pointer (siehe folgende Beispiele). Vorteil der bereichsübergreifenden, registerindirekten Adressierung ist, daß Sie den Operanden der Anweisung während der Programmbearbeitung dynamisch modifizieren können.
Der Operand der Daten, die bearbeitet werden sollen, wird indirekt von zwei Pointern angegeben. Der Pointer im Doppelwortformat, der in der Anweisung = [AR1, P#1.0] angegeben wird, wird als Versatz ausgewertet, der zu dem Inhalt des Adreßregisters addiert wird.
In das Adreßregister, auf das in der Anweisung = [AR1, P#1.0] verwiesen wird, muß bereits ein bereichsübergreifender Pointer im Doppelwortformat (z.B. P#A1.0) geladen sein. Die Adresse von Daten, die bearbeitet werden sollen, errechnet sich durch Addieren der beiden Adressen der Pointer, die das Byte und das Bit angeben, und durch Decodieren der Bits 24, 25 und 26 des bereichsübergreifenden Pointers, deren Operandenkennzeichen den Speicherbereich angeben. Die Bits, die die Bereichskennung enthalten, werden beim Laden eines bereichsübergreifenden Pointers automatisch codiert.