No, no and no.

> Is that an attempt to use LLILF to do accomplish what LARL does?

That's not what I am attempting. LARL will not work -- unless I am mistaken -- 
if the relationship between the instruction and the target cannot be known by 
the assembler. The assembler needs to be able to calculate FOO-*, which is not 
possible for the assembler if FOO is in another CSECT.

> What do you expect to be in register 2 after the LLILF?

The absolute, as-loaded address of FOO.

> You would need DC   X'C02F',AL4((FOO-*-2)/2)

Don't think so. It's not a relative instruction; it's an absolute immediate 
instruction. It assembles as X'C0rF',A(value). If value were X'12345678' then 
the instruction would assemble as C0rF12345678. It makes logical sense that the 
assembler could calculate the offset of FOO into its CSECT and ask the linker 
and loader to relocate it by the load address of the CSECT. But the assembler 
was not coded to do so.

The situation is *exactly* analogous to A(). If you code A(value) and value is 
X'12345678' then it assembles as X'12345678'. If you code A(FOO) then it 
assembles as the offset of FOO into its CSECT, plus an RLD that relocates it by 
the load address of that CSECT. That's what I want for LLILF.

Take a look at LLILF in the PoOp. It's not a relative instruction. It's not a 
base-displacement instruction. It's a load-immediate-value instruction.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Tom Marchant
Sent: Wednesday, December 28, 2016 5:57 AM
To: [email protected]
Subject: Re: ASMA032E Relocatable value or unresolved symbol found when 
absolute value required

On Wed, 28 Dec 2016 15:44:44 +0200, Binyamin Dissen wrote:

>On Tue, 27 Dec 2016 19:52:26 -0800 Charles Mills wrote:
>
>:>I guess the answer is found in the Assembler manual: "Immediate data 
>must be :>specified as absolute expressions whose range of values 
>depends on the :>machine instruction for which the data is required."
>:>
>:>There is no good reason why what I am attempting *should* not work. 
>As I :>said, if I code DC X'C02F',AL4(FOO) I believe I will get exactly 
>what I :>intended and it will execute as intended. But it doesn't work 
>because it :>doesn't work. It doesn't work because "immediate data must 
>be specified as :>absolute expressions."
>
>That will not work.
>
>You would need
>
>          DC   X'C02F',AL4((FOO-*-2)/2)
>
>Don't know if this will assembler

Is that an attempt to use LLILF to do accomplish what LARL does?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to