AMODESW CALL (Addressing Mode Switch) Macro
The macro calls a subroutine and switches the addressing mode.
Format
Requirements for the caller
- AMODE:
- 24 or 31
- RMODE:
- 24 or ANY
- ASC Mode:
- Primary
Parameters
- CALL
- Indicates that a subroutine is to be called and that the addressing mode is to be switched.
- AMODE=24 | 31 | (r1)
- Calls the subroutine and switches either to 24-bit or 31-bit addressing
mode or sets the addressing mode according to the value of bit 0 of
the specified register. The register must not be the same as the
one used with the ADDRESS operand or the register used as the return
register. If you do not specify AMODE, z/VSE sets the addressing
mode as follows:
- If you specify ADDRESS=(reg), z/VSE obtains the new addressing mode from bit 0 of (reg). If you specify ADDRESS=addr, z/VSE obtains the new addressing mode from attributes declared with the AMODE assembler pseudo-op.
- If you do not specify the AMODE or the ADDRESS operand, z/VSE obtains the new addressing mode from bit 0 of the linkage register (specified in the REGS operand).
- ADDRESS=addr | (r2)
- Specifies the address, either directly or in a register (1-15), where control is to be transferred. If you omit the ADDRESS operand, z/VSE passes control to the address in the linkage register (specified in the REGS operand).
- REGS=(return_reg|14,link_reg|15)
- Specifies the linkage registers for this call. Valid registers are 1-15. If you do not specify REGS, z/VSE uses register 14 as return_reg and register 15 as link_reg: REGS=(14,15).