Well, in fact you wouldn't write that A(...) or V(...) would you, rather

         EXTRN  TESTSTUA

         LARL   R15,TESTSTUA
         LLILF  R15,TESTSTUA

However LARL works, LLILF still gives you a message

** ASMA032E Relocatable value or unresolved symbol found when absolute value 
required - TESTSTUA



  -----Ursprüngliche Nachricht-----
Von: IBM Mainframe Assembler List [mailto:[email protected]] Im 
Auftrag von Peter Relson
Gesendet: 15 November 2013 14:05
An: [email protected]
Betreff: Re: Relative Branches / IBM macros

>We dealt with that by adding GOFF,LIST(133) to our HLASM options

As do we when we have this case. It's harmless and has no downside.

>But you CAN declare and external symbol in the
>operand field of a relative-immediate instruction.

I'm not sure that is true in general. You can definitely do it for LARL
and BRASL.
I don't know about the long immediates.

For example, I tried
    extrn E
    llilf 1,A(E)
** ASMA044E Undefined symbol - A
** ASMA173S Delimiter error, expected blank - (E)
And similarly using V(xx) is not accepted either.

Of course for this case, LARL gives the same result if the area is
halfword-aligned (but if you could do A(E+X'80000000') it wouldn't give
the same result. Note that even if the assembler were to support this,
it's not obvious if the binder and/or z/OS loading does. And in practice,
it's not obvious that there's any practical benefit (for example,
halfword-aligning is not often a difficulty)

Peter Relson
z/OS Core Technology Design

Reply via email to