This is a bug that you can report to IBM. The immediate value is 8 bits so it
should have the same restrictions as used with the CLI instruction.

I couldn't find the CIJL instruction but the code implies this was a CIJ
instruction (ECxx xxxx xx7E). I assume CIJL must be forcing mask of 4 and
allowing 3 operands. .

Regards, Jon Perryman.


________________________________
From: Robert Ngan <[email protected]>
To: [email protected]
Sent: Tue, September 25, 2012 5:38:02 PM
Subject: Immediate value range on [arithmetic] COMPARE and JUMP

I am playing with the COMPARE AND JUMP instructions to see what range of
immediate values are accepted by the assembler.

The compare logical and jump instructions are restricted to terms in the
0-255 range which is what I had expected.
However, the [arithmetic] compare and just accepts ANY valid self defining
term, and silently truncates that value to to the rightmost 8-bits!

Examples:

00000032 ECE4 0018 7F7E          00000062    231          CIJL
R14,-129,AA999
00000038 ECE4 0015 807E          00000062    232          CIJL
R14,-128,AA999
0000003E ECE4 0012 FF7E          00000062    233          CIJL
R14,255,AA999
00000044 ECE4 000F 007E          00000062    234          CIJL
R14,256,AA999
0000004A ECE4 000C F47E          00000062    235          CIJL
R14,500,AA999
00000050 ECE4 0009 787E          00000062    236          CIJL
R14,X'12345678',AA999
00000056 0000 0000 0000          00000000    237          CIJL
R14,X'123456789',AA999
** ASMA146E Self-defining term too long or value too large -
X'123456789',AA999
** ASMA435I Record 51 in SYS12269.T191312.RA000.RXN.R1B80579 on volume:
DCIA23
0000005C ECE4 0003 F47E          00000062    238          CIJL
R14,C'1234',AA999

I think any expression value outside the range -128:255 (or even stricter,
-128:127) should be flagged by the assembler.
Would you consider this behavior a bug or a feature?

Robert Ngan
CSC Financial Services Group

Reply via email to