Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!ucbvax!MAINE.BITNET!MICHAEL From: MICHAEL@MAINE.BITNET (Michael Johnson) Newsgroups: comp.lang.asm370 Subject: Re: Addressibility problems Message-ID: <8906011713.AA20509@jade.berkeley.edu> Date: 1 Jun 89 13:01:18 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 29 While moving data areas to the end of the program MAY be only a stopgap solution, it does have merit. It is a lot less work than reorganizing the code entirely and will usually do the job nicely. Which isn't to say that your solution isn't elegent, Leonard. It's a pretty standard way to write code for large systems. One problem that the solutions proposed so far have is that they generated address constants. In release 6 of CMS this is not a problem at all, since there are fully relocatable modules in R6. But for earlier releases, being free of address constants can be important. You can avoid address constants by coding something like this.. BASE CSECT , USING BASE,R12 . . L Rx,ADATA ALR Rx,R12 . . ADATA DC AL4(DATA-BASE) While this approach uses an extra two byte instruction, it has the advantage of not generating a relocatable address constant. I've used this many times in code that I wanted to be absolutely ADCON free. Michael Johnson "We are the Priests of the Temples University of Maine System of Syrinx. Our great computers fill Computing and Data Processing Services the hallowed halls." - Neil Peart