"Retired mainframer" noted:

>I must be missing something obvious.  Why not simply
>
>              MACRO
>      &Lab    MVC2    &Target,&Source
>      &Lab    MVC     &Target(L'&Source-1),&Source
>              MEND
>
>or avoid the macro completely with
>
>       &Lab   MVC      Label1(L'Label2-1),Label2

The reason for the more complex macro is that the source operand may have
been encountered by the assembler for the first time in the MVC
instruction, and not yet appear in the symbol table with all attributes
assigned (particularly, length), so the L' reference might fail. (This can
happen easily with literal operands.) The purpose of the LA instruction in
the macro is to force the &Source operand into the symbol table in case
it's not there already.

John Ehrman

Reply via email to