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