That's the old-fashioned way.  This is the new way:

USING *,16

There are some caveats.  For CSECTs, HLASM will complain if SECALGN is
insufficient.  For DSECTs, it's your responsibility to ensure the alignment
matches (if it's real important).  Fortunately, STORAGE has a corresponding
alignment specification.

sas

On Wed, Apr 20, 2022 at 10:50 AM Bob Raicer <r...@raicer.com> wrote:

> Ed;
>
> Of course, what you said about the LQ type of DC is true, and I too
> have used LQ data types in some of my code too.  However, the
> SECTALGN requirement is a bit of an issue when assembling code with
> 2**3 (double word) section alignment and which also contains DSECTs
> which map quad word aligned storage areas.  I've had to resort to
> schemes like what is shown below (I hope the list server doesn't
> mangle the sample listing too badly).
>
> The reason(s) for still having double word aligned sections is (are)
> a bit lost in antiquity -- inertia is a powerful thing :)
>
> : D-Loc   Object Code     Stmt   Source Statement
> :00000000                    1 SAMPLE   DSECT ,
> :                            2          PRINT ON,DATA
> :00000000 00000010           3 REF      DC    A(QUADITEM)
> :00000004 00                 4 BYTE     DC    AL1(0)
> :                            5 *
> ---------------------------------------------------------
> :00000005 0000000000000000   6          DC
> (((((*-SAMPLE)+15)/16)*16)-(*-SAMPLE))AL1(0)
> :0000000D 000000
> :                            7 * Round up to a Quad Word
> :                            8 * boundary.
> :                            9 *
> :00000010 0000000000000000  10 QUADITEM DC    XL16'00'
> :00000018 0000000000000000
> :                           11          END   ,
>

Reply via email to