John McKown writes:

<begin extract>
No such thing as a negative displacement. A displacement is more like
an unsigned immediate operand. From 0..4095 (0x000 to 0xFFF for a 12
bit displacement) or 0..1048575 (0x00000 to 0xFFFFF for a 20 bit long
displacement)
</end extract>

This is is correct only for traditional System/360 instructions.  As
one of many counter-examples consider the GRASL instruction, about
which the PrOp says:

<begin extract>
The contents of the I[2] field are a signed binary integer specifying
the number of halfwords that is (sic) added to the address of the
instruction to generate the branch address.
</end extract>

In general the 12- and 20-bit "displacements" in the new instructions
are signed.

Le bon Dieu est dans le détail.  --Gustave Flaubert

John Gilmore, Ashland, MA 01721 - USA

Reply via email to