> 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

Reply via email to