HLASM Language Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF

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:
      USING 3,0
      LA    7,5
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:
  • With a base address representing an absolute expression
  • With a base register that has not been assigned by a USING instruction in which a relocatable base address is specified

This base register must be loaded with the base address specified.

Go to the previous page Go to the next page

Copyright IBM Corporation 1990, 2014