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 <ASSEMBLER-LIST@LISTSERV.UGA.EDU> wrote on
2013/11/02 10:39:07:

> From: "esst...@juno.com" <esst...@juno.com>
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Date: 2013/11/02 10:58
> Subject: Some Help with Conditional Assembly
> Sent by: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU>
>
> 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
> *******************************

Reply via email to