On Fri, 10 Sep 2010 16:53:53 +1000, robin wrote:

>From: "Paul Gilmartin"
>Sent: Thursday, 9 September 2010 4:32 PM
>
>> I would firmly oppose such a gentle correction.  Take a broad view.
>> Which has the more obvious meaning:
>>
>>          LA    R3,-4(R2)       Set R3 to 4 less than R2
>
>It doesn't.
>It sums 4092 and the content of R2.

No.  It sums the specified displacement (4092 or x'FFC'), the
contents of index register R2 and the implied base register, R1,
which was loaded with -4096 (x'FFFFF000').  If register 2 has a
value of x'00007FE4', as it did when I ran the test, the resulting
value in register 3 is x'00007FE0'.  Four less than R3.
There is an overflow but it is ignored.

>[I'm assuming that you meant to write LA R3,-4(0,R2) ]

Bad assumption.  Gil did originally write -4(,R2), but someone
pointed out early in the thread that it should have been -4(R2),
and Gil admitted that he had he'd specified it wrong at first.
That was after your first post on the subject, but you appear
not to have kept up with the discussion.

>> or:
>>
>>          LA    R3,4092(R1,R2)  Set R3 to 4 less than R2
>
>It doesn't either [viz, set R3 to 4 less than R2].
>It sums the contents of Reg 1 and Reg 2 and the displacement value 4092.

As above, x'FFC' + x'FFFFF000' + x'00007FE4' = x'00007FE0'.

--
Tom Marchant

Reply via email to