This technique relies on the rule that including an explicit index register in 
an address expression suppresses the alignment warning, even if that index 
register is zero (which may originally have been an oversight).  HLASM's own 
source code uses this technique, so it should be safe to use.  I thought I had 
submitted a documentation update request a few years ago to ensure this was 
properly documented, probably as part of the explanation of message ASMA033I 
(which already shows how to use an explicit base register), but I can't find 
any mention in the current documentation, and having retired from IBM I no 
longer have access to the request queue so I can't tell whether it is still in 
the queue.

Jonathan Scott

-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of Peter Morrison
Sent: 02 September 2025 11:10
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Using (0) to suppress alignment checks in HLASM
Importance: High

Hello,

                Has anyone else used (0) at the end of an RX (or RXY) 
instruction to suppress the assembler's alignment check? 

                For Example:

                                DC X'00'        force next field to be unaligned
                X_UNAL  DC AL4(0)       Declare an unaligned fullword

                                L       R0,X_UNAL                       gets a 
warning
                                L       R0,X_UNAL(0)                    same 
generated code (ix reg is 0) but no warning

                If so, where is it documented? (this is easier than a <PUSH 
ACONTROL/ACONTROL NOALIGN/instr/POP ACONTROL> sequence (and takes no extra 
lines))

Peter Morrison

Reply via email to