During the delivery of an OS/390 Introduction course on 4th September 2002, the question was asked; "Why is it 31-bit addressing and not 32?"

The answer lies in the fact that the high-order bit of the high-order byte had a reserved use within the pre-MVS (OS/390) systems. The illustrations below this usage.

GPR in 24-bit mode

Byte 0

Bit 0

Byte 0
Bits 1 - 7

Reserved

Byte 1
Bits 8 - 15

First byte of address

Byte 2
Bits 16 - 23

Second byte of address

Byte 3
Bits 24 - 31

Third byte of address

GPR in 31-bit mode

Byte 0

Bit 0

Byte 0
Bits 1 - 7

First byte of address

Byte 1
Bits 8 - 15

Second byte of address

Byte 2
Bits 16 - 23

Third byte of address

Byte 3
Bits 24 - 31

Fourth byte of address

Bit 0 of Byte 0 would be set to 1 to indicate the end of a variable parameter list, and left to zero in all other circumstances in both 24 and 31 bit mode addressing. This usage precluded the adoption of 32-bit addressing without significant change to system routines. This was not a problem for 64-bit made as the move to 64-bit rather than 32-bit Registers was a major architectural change in any event.

Copyright © KMS-IT Limited 2002