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.

Reply via email to