On May 27, 2012, at 11:13, Jon Perryman wrote:

> There is hidden functionality in this macro.
>
> 1. I believe that john said that LA will resolve a label reference in the
> assembler. I'm not sure of the situations it fixes.
>
John E. acknowledged in a followup to Ray Mansell's revision
that changing the:

&Lab    CLC   0(0,0),&Source

to:

&Lab    MVC   &Target,&Source

meets that need.

> 2. Coding the (0) on the LA causes an error message when the destination is a
> literal or has a length specified. This eliminates code to check for these
> situations.
>
But it does not cause an error message when &Target is a literal:

000014 4100 C028            00028    28+         LA    0,=C'WOMBAT'(0)

... assembles fine.  Apparently specifying length of a literal is
fine.  But, again, the Mansell simplification detects it.:

000018 0000 0000 0000 00000 00000    29+LITCMVC  MVC   =C'WOMBAT',=C'FOO'
** ASMA030E Invalid literal usage - =C'WOMBAT'

And the LA &Target.(0) causes an unwanted error message when
the target has the D1(,B1) form:

000000 0000 0000            00000    14+         LA    0,99(,11)(0)
** ASMA173S Delimiter error, expected blank - (0)

> Checking the length will only work if the label is defined before the check.
>
Checking the length is undesirable when Target has the D1(,B1) form.

-- gil

Reply via email to