Yes, all the lines coded after the OPSYN will treat the "LA" instruction as a 
"LAY" until you suspend it with a new "LA OPSYN ," 
 
-----Mensagem original-----
De: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> Em nome de 
Schmitt, Michael
Enviada em: quinta-feira, 14 de julho de 2022 11:30
Para: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Assunto: Re: YA MGCRE RCF?

I've never used OPSYN. Can this technique be used with the execute form of the 
CALL macro, so that the linkage items can be further away from the base 
registers?



-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of João Reginato
Sent: Thursday, July 14, 2022 8:53 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: RES: YA MGCRE RCF?

You can code e new line with " LA OPSYN  LAY" just before the original CALL.
Try it.
Regards

João

-----Mensagem original-----
De: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> Em nome de 
Steve Smith Enviada em: quarta-feira, 13 de julho de 2022 14:50
Para: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Assunto: Re: YA MGCRE RCF?

I created a macro to generate parmlists with optional specification for how an 
operand is addressed.  Briefly,

CALLV program,(parm1,parm2,(parm3,Y),parm4)

where parm3 would be addressed with LAY instead of LA.  The macro actually just 
appends the 2nd operand to LA (i.e. 'LA&SYSLIST(&N,2)'), so it's flexible and 
simple.  Obviously, this depends on the macro electing to support that 
technique, and the hundreds of IBM service macros that require addresses aren't 
likely to be so enhanced.

But in general, if something needs exotic addressing, you just have to get the 
address into a register yourself, and pass that in.  All in all, it's probably 
not enough of a problem to be worth a ton of effort trying to make it easier.  
I think Jonathan's post implies that it would be a big deal for HLASM.

As for example code that IBM provides, I haven't seen any yet that would pass 
our code review, and many that would fail to assemble.  Nevertheless, they're 
useful for their purpose.  As far as I'm concerned, the base register setup 
instructions are unnecessary clutter anyway.  If you need help with that, 
you're in the wrong manual.

sas


On Wed, Jul 13, 2022 at 8:27 AM Peter Relson <rel...@us.ibm.com> wrote:

> Definitely the lack of an equate for R12 should be corrected (such as 
> by adding an equate and a BASR R12,0). I'll get that taken care of.
>
> Almost all macros expect some amount of addressability to static data 
> for certain invocations. That will not be stated for individual 
> macros. That is why "baseless" coding is usually not a valid approach if 
> using z/OS macros.
> You tend at least to need addressability to static data.
>
> The MGCRE example isn't even for that case; it needs addressability to 
> get to the static data that is used (the text and consname). Macros, 
> in general, have no way of knowing if they could use "LARL" so don't even try.
>
> An entertaining thought for an assembler enhancement would be a 
> pseudo-op that generated "LA" or "LARL" depending on whether the 
> target was in a CSECT or a DSECT (maybe allowing for LAY too).
>
> Peter Relson
> z/OS Core Technology Design
>

Reply via email to