On Thu, 7 Nov 2019 20:49:14 +0000, Seymour J Metz wrote:

>The contents of R0 may be relevant, but not in the OP's context.
>As others have repeatedly pointed out, a base or index field of 0 
>specifies a value of 0, not the contents of R0.

As documented in the Principles of Operation, page 2-4 of the latest 
edition (SA22-7832-12):

<quote>
In addition to their use as accumulators in general
arithmetic and logical operations, 15 of the 16 general
registers are also used as base-address and
index registers in address generation. In these
cases, the registers are designated by a four-bit B
field or X field in an instruction. A value of zero in the
B or X field specifies that no base or index is to be
applied, and, thus, general register 0 cannot be designated
as containing a base address or index.
</quote>

Earlier editions of the POO have a similar statement, going all the way 
back to the System/360 Principles of Operation. The wording in the first 
edition of the S/360 POO (A22-6821-0, in which I don't see a date, but
 the -1 edition is dated June 1964) seems a bit awkward to me, but it 
says the same thing.

<quote>
The program may have zeros in the base address,
index, or displacement fields. A zero is used to indicate
the absence of the corresponding address component.
A base or index of zero implies that a zero
quantity is to be used in forming the address, regardless
of the contents of general register 0.
</quote>

-- 
Tom Marchant

Reply via email to