> Me too. A comparison:
>
> Assembler H:
>
>
> PAGE 2
> LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
> ASM H V 02 10.13 09/09/10
> 000000 1 NEGDISP CSECT
> FFFFF000 2 USING -4096,R1
> 000000 4132 1FFC FFFFFC 3 LA R3,-4(R2)
> 4 *
> 000004 0000 0000 00000 5 LA R3,-4(,R2)
> IEV034 *** ERROR *** ADDRESSABILITY ERROR
> 6 *
> 7 YREGS
>
I'm trying to determine why this would assemble the
instruction at line #3.
(We have to make some kind of assumption that
allows the negative absolute value as the first
operand of the USING, which both HLASM and ASM H
appear to do.)
Then, at line #3, there is no base register specified, so
the USING of R1 comes into play.
Thus, the offset to place in the instruction is
X'FFFFF000' - 4 which is X'FFFFEFFC'. That seems
to be way outside of the range 0 - 4095, so why
isn't there an error?
If we assume signed arithmetic internally, the
the expression -4096-4 is -4100, which again
is way outside the range.
Just wondering what arithmetic leads this
particular line to assemble... I must not
be seeing something...
- Dave Rivers -
--
[email protected] Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com