The USE-REGISTER statement specifies that a particular register in the specified module is to be taken as the base for an area of the module or for a particular control block (DSECT) in the event of disassembled output. This means that the instructions are no longer specified using the base/offset format, but as an relative offset within the module or via the field names from the relevant control block.
The USE-REGISTER statement and the corresponding DROP-REGISTER statement do not support the output of disassembled x86 code. x86 registers may not be specified.
Format
USE-REGISTER | ||||||||||||||||||||||||||||
|
Operands
MODULE-NAME = <name 1..32>
Specifies the name of the module to which the declaration for the disassembled output is to apply.
REGISTER = <integer 0..15>
Specifies the register to be used as the base register.
REGISTER = <integer 0..15>
Specifies a /390 general register.
FOR = *MODULE-BASE(...)
The register is to be used as the base register for the specified module.
DISPLACEMENT = 0 / <integer -2147483648..2147483647> / <x-string 1..8>
Specifies the relative starting address of the area (within the specified module) for which the register is to be used as the base.
FOR = *CONTROL-BLOCK(...)
The register is to be used as the base register for a control block.
NAME = <structured-name 1..32> / <name 1..32 with-under>
Specifies the name of the control block for which the register is to be used as the base.
Examples
USE-REGISTER MODULE-NAME=DOPEN, REGISTER=10, FOR=*MODULE-BASE(DISPLACEMENT=X'1000') USE-REGISTER MODULE=DCLOSE, REG=4, FOR=*CONTROL-BLOCK(NAME=EXVT)