Use of 31-bit addressing

In addition to providing support for the use of 31-bit addresses by user programs, MVS™ includes many system services that use 31-bit addresses.

Some system services are independent of the addressing mode of their callers. These services accept callers in either 24-bit or 31-bit addressing mode and use 31-bit parameter address fields. They assume 24-bit addresses from 24-bit addressing mode callers and 31-bit addresses from 31-bit addressing mode callers. Most supervisor macros are in this category.

Other services have restrictions with respect to address parameter values. Some of these services accept SVC callers and allow them to be in either 24-bit or 31-bit addressing mode. However, the same services might require branch entry callers to be in 24-bit addressing mode or might require one or more parameter addresses to be less than 16 megabytes.

Some services do not support 31-bit addressing at all. To determine a service's addressing mode requirements, see the documentation that explains how to invoke the service. (VSAM accepts entry by a program that executes in either 24-bit or 31-bit addressing mode.)

z/OS® provides instructions that support 31-bit addressing mode and bimodal operation (31-bit and 24-bit). Your program also can be trimodal (64-bit, 31-bit and 24-bit) but that can be complicated so it is rare. These instructions are supported by High Level Assembler. The binder and linkage editor functions for z/OS are described in z/OS MVS Program Management: User's Guide and Reference.