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