Everything everyone else has said is correct. In addition
> use a DS 0F to start the LRL instruction itself on a word boundary Bad idea! #1, as someone else pointed out, all you need is halfword alignment. #2 the assembler will do that for you automatically. And #3 the DS 0F has a 50-50 (or 3 in 4, depending on how you look at it) chance of generating a couple of garbage-filled slack bytes. You're not doing that already, are you? That would account for the operation exception if so. Charles -----Original Message----- From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of Stanislawski, Shawn (National VM Capability) Sent: Friday, April 30, 2021 12:36 PM To: [email protected] Subject: Ensuring LRL 2nd operand alignment Trying to use the LRL(32) instruction ('C4D' / 'C4xD' opcode). But running into: DMSABE141T Operation exception -> 00DF5124 LRL C45D00006832 00000000 *** 00DF5124 PROG 0001 -> 0139B660 OPERATION Reading in the "zArchitecture Principles of Operation" (SA22-7832-12) = "For LOAD RELATIVE LONG (LRL, LGFRL), the second operand must be aligned on a word boundary,..." Guessing alignment is the problem. I know I can use a DS 0F to start the LRL instruction itself on a word boundary, but any ideas how to ensure that specifically the second operand of the LRL instruction will always be aligned on a word boundary? --Shawn S.
