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