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 Reserved |
Byte 1 First byte of address |
Byte 2 Second byte of address |
Byte 3 Third byte of address |
GPR in 31-bit mode |
||||
Byte 0 Bit 0 |
Byte 0 First byte of address |
Byte 1 Second byte of address |
Byte 2 Third byte of address |
Byte 3 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