Previous topic |
Next topic |
Contact z/OS |
Base registers for absolute addresses
HLASM Language Reference
Absolute addresses used in a source module must also be made addressable. Absolute addresses require a base register other than the base register assigned to relocatable addresses (as described above).
However, the assembler does not need a USING instruction to convert absolute implicit addresses in the range 0 through 4095 to their explicit form. The assembler uses register 0 as a base register. Displacements are computed from the base address 0, because the assembler assumes that a base or index of 0 implies that a zero quantity is to be used in forming the address, regardless of the contents of register 0. The USING domain for this automatic base register assignment is the entire source module.
If a register is specified with base address zero, the assembler uses it in preference to the default use of register zero. For example:
generates the instruction X'41703005'; in the absence of the USING statement, the generated instruction is X'41700005'.
For absolute implicit addresses greater than 4095 and in the absence of long-displacement instructions, a USING instruction must be specified according to the following:
This base register must be loaded with the base address specified.
Copyright IBM Corporation 1990, 2014