On 8 September 2010 15:09, Tom Marchant<[email protected]> wrote:
I'm surprised that this would assemble.
....
0008 4130 2FFC FFFFFC 25 LA R3,-4(,R2)
...
I don't understand why the instruction at line 25 assembles
as 4130 2FFC. As far as I can see, it should generate an error.
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
HLASM:
Page 3
Active Usings: None
Loc Object Code Addr1 Addr2 Stmt Source Statement
HLASM R6.0 2010/09/09 10.14
000000 00000 00008 1 NEGDISP CSECT
R:1 FFF000 2 USING -4096,R1
000000 4132 1FFC FFFFFC 3 LA R3,-4(R2)
4 *
000004 4130 2FFC FFFFFC 5 LA R3,-4(,R2)
6 *
7 YREGS
Tachyon:
PAGE 5
Active USINGs: None
Loc Object Code Addr1 Addr2 Stmt Source Statement
X390 2.3.05 2010/09/09 10.11
000000 00000 00008 1 NEGDISP CSECT
000000 2 USING -4096,R1
** TXA111E Operand 1 is invalid.
** TXA301I Record 2 in .m1/src_Rolltest/NEGDISP.s
000000 FFFFC 3 LA R3,-4(R2)
** TXA317E Addressability error in operand 2.
** TXA301I Record 3 in .m1/src_Rolltest/NEGDISP.s
4 *
000004 FFFFC 5 LA R3,-4(,R2)
** TXA316E Invalid displacement in operand 2.
** TXA301I Record 5 in .m1/src_Rolltest/NEGDISP.s
6 *
7 YREGS
In my view, the only correct one is Assembler H.
-- gil