For the equate case, I tend to code:
&L SETA EQUATE
AMOVE L=3D&L,S=3Dwhatever
This requires EQUATE be defined prior to the macro invocation.
I use this in cases where the macro requires the actual value of the equate
so it can do arithmetic tests and calculations on it to determine what
instruction to generate.
Robert Ngan
CSC Financial Services Group
IBM Mainframe Assembler List <[email protected]> wrote on
2013/11/02 10:39:07:
> From: "[email protected]" <[email protected]>
> To: [email protected]
> Date: 2013/11/02 10:58
> Subject: Some Help with Conditional Assembly
> Sent by: IBM Mainframe Assembler List <[email protected]>
>
> I have a simple macro
>
> AMOVE &L=LENGTH,&S=SOURCE,&T=Target
> L R15,&L .Length Of Move
> ...
> ...
> MVCL Ra,Rb
> MEXIT
> MEND
>
> In a Macro I wish to generate 3 different instructions depending on
> the value supplied for &L.
>
> If I specify AMOVE L=LENGTH
> I want the macro to generate a LOAD Of a Full Word
> L Rz,LENGTH
>
> LENGTH DS F
>
> If I Specify AMOVE L=32767
> I want the macro to generate a Load Addres
> LA Rz,32767
>
> If I specify AMOVE L=EQUATE
> I want the macro to generate a Load Address of
> LA Rz,EQUATE
>
> EQUATE EQI (*-BEGIN)
>
>
> Could someone please provide an example as to how to test for
> the conditions above in a Macro.
>
> Paul D'Angelo
> *******************************