> base + < 4K displacement That limit certainly exists for some instructions, but not for the long displacement instructions. Whether that helpss depends on what you're doing.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List [[email protected]] on behalf of Charles Mills [[email protected]] Sent: Monday, April 5, 2021 9:38 PM To: [email protected] Subject: Re: DSECT which refers to area inside CSECT Do be aware that all of the dependent USINGs in the world do not overcome the architectural limitation of base + < 4K displacement. It is not the area of the USING that must be < 4K; it is that every field in the dependent USING that you intend to reference must be within 4K of the register. OTOH, you may be able to free up a code base register. Executable code barely needs a base register anymore. If you convert all of the branches to relative jumps you may be able to free up the "permanent" code base register, and just use a "work" register as a temporary code base where necessary. There is a macro that will convert branches to jumps under the covers. The Goo Gal (or some diligent poster) should supply the name. Charles -----Original Message----- From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of Bernd Oppolzer Sent: Monday, April 5, 2021 3:42 PM To: [email protected] Subject: Re: DSECT which refers to area inside CSECT Yes, perfectly. This way I don't need an extra register for the static #DRENT. I'll try it tomorrow, but I'm very sure it will work. Thanks a lot Bernd Am 06.04.2021 um 00:35 schrieb Charles Mills: > Not sure I follow perfectly but if you have two areas that are defined > separately in the assembler but that have some fixed relationship known at > assemble time, you should be able to use the non-register form of USING. Let > me see if I can explain better. > > AREAA DSECT > Blah blah blah > > SOME CSECT > Blah blah blah > AREAB DS ... > > Let's say you know at assembly time that AREAB is 1024 bytes beyond the > address of AREAA. Add the following to AREAA DSECT > > ORG AREAA+1024 > AREAB_dummy EQU * > > Then in your code say > USING AREAA,Rx > USING AREAB,AREAB_Dummy
