Well, this was explained two weeks ago, but x'0011' is wrong, too.  You
want b'0011'.

At least the assembler might complain about x'11', since it's too big
for the 4-bit field.

sas

On 12/4/2012 15:31, Rich Mastrandrea wrote:
Mark,

What you need to see is what is immediately after HALFWORD,
The instruction ICM   R1,0011,HALFWORD really should have been ICM
R1,3,HALFWORD or ICM   R1,x'0011',HALFWORD

What is happening is that the 11 is a decimal number and is being
translated to a x'1011'.
It is taking the 11 and placing it into the high order byte of r1 (byte 0),
then the 22 into byte 2 of r1 and whatever follows into the low order byte
of r1.

Richard Mastrandrea
Mainframe Systems Programmer
CSC
100 Winnenden Rd.
Norwich, CT.   06360

Global Outsourcing Services  | phone: 860-823-2505  | cell: 860-823-7951 |
fax 860-823-2606

This is a PRIVATE message. If you are not the intended recipient, please
delete without copying and kindly advise us by e-mail of the mistake in
delivery. NOTE: Regardless of content, this e-mail shall not operate to
bind CSC to any order or other contract unless pursuant to explicit written
agreement or government initiative expressly permitting the use of e-mail
for such purpose.



From:   Mark Boonie <boo...@us.ibm.com>
To:     ASSEMBLER-LIST@listserv.uga.edu
Date:   11/15/2012 11:31 AM
Subject:        Another you-see-what-you-want-to-see moment
Sent by:        IBM Mainframe Assembler List <ASSEMBLER-LIST@listserv.uga.edu>



I know it's not Friday, but....

Yesterday someone had a problem where the following behavior was observed:

Before ICM:
    R1       = x'0000000000000000'
    HALFWORD = x'1122'

Instruction:
    ICM   R1,0011,HALFWORD

After ICM:
    R1       = x'0000000011002200'

(The cause of the problem did not involve macros or OPSYN.)

- mb

Mark Boonie

Reply via email to