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
