Mit der Anweisung USE-REGISTER wird für die disassemblierte Ausgabe festgelegt, dass in dem angegebenen Modul ein bestimmtes Register als Basis für einen Bereich des Moduls bzw. für einen bestimmten Kontrollblock (DSECT) angenommen werden soll. Dies hat zur Folge, dass in der Befehlsaufbereitung die Operanden nicht mehr mit Basis und Distanz angegeben werden, sondern als relative Distanz innerhalb des Moduls bzw. über den Feldnamen aus dem zugehörigen Kontrollblock.
Die disassemblierte Ausgabe für x86-Code wird von der Anweisung USE-REGISTER und der korrespondierenden Anweisung DROP-REGISTER nicht unterstützt. Es können keine x86-Register angegeben werden.
Format
USE-REGISTER | ||||||||||||||||||||||||||||
|
Operandenbeschreibung
MODULE-NAME = <name 1..32>
Bezeichnet den Namen des Moduls, innerhalb dessen die Vereinbarung für die disassemblierte Ausgabe gelten soll.
REGISTER = <integer 0..15>
Bezeichnet das /390-Mehrzweckregister, das als Basisregister verwendet werden soll.
FOR = *MODULE-BASE(...)
Das Register soll Basisregister für den angegebenen Modul sein.
DISPLACEMENT = 0 / <integer -2147483648..2147483647> / <x-string 1..8>
Bezeichnet innerhalb des angegebenen Moduls die relative Anfangsadresse des Bereiches, für den das Register als Basis verwendet werden soll.
FOR = *CONTROL-BLOCK(...)
Das Register soll Basisregister für einen Kontrollblock sein.
NAME = <structured-name 1..32> / <name 1..32 with-under>
Gibt den Namen des Kontrollblocks an, für den das Register als Basis dienen soll.
Beispiele
USE-REGISTER MODULE-NAME=DOPEN, REGISTER=10, FOR=*MODULE-BASE(DISPLACEMENT=X'1000') USE-REGISTER MODULE=DCLOSE, REG=4, FOR=*CONTROL-BLOCK(NAME=EXVT)