Bill, Amen, I first wrong BAL on a 360/20, didn't have the 1401 exposure ..man half words were real important
Scott ford www.identityforge.com On Jun 4, 2012, at 11:15 AM, Bill Fairchild <[email protected]> wrote: > I have seen many old IBM modules (in dumps, microfiche, etc.) in which the > first few instructions are something like this: > MODULE USING *,R15 > LR R12,R15 > LA R11,4095(,R12) > DROP R15 > USING MODULE,R12 > USING MODULE+4095,R11 > This allows 8,191 bytes of local addressability to be established with only > two instructions for a total length of 6 bytes of executable code. This kind > of code was "state of the art" long ago when each additional byte of storage > was vastly more expensive than that same additional byte is today. Back in > those days there was no real storage or virtual storage, just "storage", and > modules had to be as small as possible. And many modules written way back > then are still alive and well inside z/whatever-its-latest-name-is. > Yes, the odd offsets look weird, but the weird look does not prevent the > DAT's ability to add the base register's contents to the displacement and > generate the correct address. > When one is writing new code, one is free to be elitist and exploit the > latest and greatest instructions that are available on the processors on > which the code is expected to run. > When one is working with old code, or even new code written by Luddites, > denigrating the technology used does not really help in understanding what > the module is doing. > > Bill Fairchild > Programmer > Rocket Software > 408 Chamberlain Park Lane * Franklin, TN 37069-2526 * USA > t: +1.617.614.4503 * e: [email protected] * w: > www.rocketsoftware.com > > -----Original Message----- > From: IBM Mainframe Assembler List [mailto:[email protected]] > On Behalf Of robin > Sent: Sunday, June 03, 2012 7:45 PM > To: [email protected] > Subject: Re: Base registers > > From: Chuck Arney > Sent: Sunday, 3 June 2012 6:53 AM > >> I don't think you really want your base register pointing to an odd address. >> You need to add 1 more to make it right and that requires another >> instruction. > > There's no need to be scared of an odd value. > It is, after all, the assembler that calculates displacements.
