Groups | Search | Server Info | Login | Register
Groups > comp.lang.asm370 > #43
| Message-ID | <5016F8FA.5090100@xs4all.nl> (permalink) |
|---|---|
| Date | 2012-07-30 22:13 +0100 |
| From | JEmebius <jemebius@xs4all.nl> |
| Newsgroups | comp.lang.asm370 |
| Subject | Re: "Using" statement? -- |
| References | <500061a6$0$6058$607ed4bc@cv.net> <acc1286749193b7abb3956c4eb054e8a@breaka.net> <5016F801.3000207@xs4all.nl> |
JEmebius wrote: > Anonymous wrote: >> John W Kennedy <jwkenne@attglobal.net> wrote: >> >>> On 2012-07-13 12:12:09 +0000, Fritz Wuehler said: >>> >>>> John W Kennedy <jwkenne@attglobal.net> wrote: >>>> >>>> Didn't see Pete's post since I killfile everything from google >>>> >>>>> On 2012-07-12 15:36:32 +0000, Pete Nelson said: >>>>> >>>>>> On Friday, July 6, 2012 10:24:16 AM UTC-5, John W Kennedy wrote: >>>>>>> But, as I say, if you are writing code expressly for >>>>>>> z/Architecture,> >>>>>>> and use only the Branch Relative family of instructions, and put >>>>>>> all> >>>>>>> your data in a separate CSECT or DSECT (or PSECT), you do not >>>>>>> need a> >>>>>>> base register for your code CSECT. That's why the Branch >>>>>>> Relative> >>>>>>> instructions were invented -- so that you have one more general> >>>>>>> register to use for other purposes. >>>>>>> >>>>>> Basically true, although whether your literal pool and constants >>>>>> are in >>>>>> a separate CSECT or the same CSECT as your executable code, a base >>>>>> register is still needed to address the data. For small programs, >>>>>> you >>>>>> probably end up using just as many base registers either way; when >>>>>> the >>>>>> size of your executable code approaches/exceeds 4K, then you start >>>>>> avoiding register starvation by using relative branching. >>>> It's true many people allocate additional base registers when code >>>> exceeds >>>> 4K but there is another way around this and I have written and >>>> worked on >>>> substantial pieces of code that use one code base register no matter >>>> how >>>> large the CSECT. There is really no excuse to use more than one code >>>> base >>>> register, and I am saying that in reference to OS/360, not just >>>> since the >>>> branch relative and immediate facility came out. >>> Back in the OS/360 days, frankly, I always regarded more than one >>> code base register (for which I generally used GR12 unless in a PL/I >>> environment, in which case I used GR11) as a sure sign that the >>> module had grown too big, and needed to be refactored. >> >> Agreed. > > When I knew in advance that my OS/360 module would occupy more than 8 > Kbytes (4096 bytes) and certainly less than 12 Kbytes I would define > registers GR12, GR11 and GR10 as base registers for the first 4K, the > second 4K and the last 4K, and load them in advance with the appropriate > values: > <GR15>, <GR15> + 4096, <GR15> + 8192. > > The most straightforward coding for this reads [use fixed-space font] > > ABCDEFGH CSECT > USING 12,11,10 > LR 12,15 > LR 11,15 > AH 11,=H'4096' > LR 10,15 > AH 10,=H'8192' > ................. > LTORG > DC H'4096' (I am not sure if this the correct printing > in the output listing) > DC H'8192' > > (Takes 18 bytes) > > Programmers who dislike literals can of course code something like > > IKJL CSECT > USING 12,11,10 > LR 12,15 Origin of CSECT to GR12 > LA 11,2048 Number 2048 to GR11 > SLL 11,1 Shift one bit to the left so as to obtain 4096 > LA 10,2048 Number 2048 to GR10 > SLL 10,2 Shift two bits to the left so as to obtain 8192 > AR 11,12 Add contents of GR12 to contents of GR11, > obtaining <GR12> + 4096 > AR 10,12 Add contents of GR12 to contents of GR10, > obtaining <GR12> + 8192 > > ................................................................................... > > > (Takes 20 bytes) > > Enjoy this old and bygone(?) stuff! > > Ciao: Johan E. Mebius > Silly mistake: 8 Kbytes is of course 8192 bytes. Was too fast editing my post. Johan E. Mebius
Back to comp.lang.asm370 | Previous | Next — Previous in thread | Next in thread | Find similar
"Using" statement? hancock4@bbs.cpcn.com - 2012-07-06 06:52 -0700
Re: "Using" statement? John W Kennedy <jwkenne@attglobal.net> - 2012-07-06 11:24 -0400
Re: "Using" statement? hancock4@bbs.cpcn.com - 2012-07-06 10:15 -0700
Re: "Using" statement? Fritz Wuehler <fritz@spamexpire-201207.rodent.frell.theremailer.net> - 2012-07-12 07:31 +0200
Re: "Using" statement? John W Kennedy <jwkenne@attglobal.net> - 2012-07-12 22:09 -0400
Re: "Using" statement? Pete Nelson <plnelsonoma@yahoo.com> - 2012-07-12 08:36 -0700
Re: "Using" statement? John W Kennedy <jwkenne@attglobal.net> - 2012-07-12 22:13 -0400
Re: "Using" statement? Fritz Wuehler <fritz@spamexpire-201207.rodent.frell.theremailer.net> - 2012-07-13 14:12 +0200
Re: "Using" statement? John W Kennedy <jwkenne@attglobal.net> - 2012-07-13 13:57 -0400
Re: "Using" statement? Anonymous <noreply@breaka.net> - 2012-07-15 05:54 -0400
Re: "Using" statement? - JEmebius <jemebius@xs4all.nl> - 2012-07-30 22:09 +0100
Re: "Using" statement? -- JEmebius <jemebius@xs4all.nl> - 2012-07-30 22:13 +0100
Re: "Using" statement? --- JEmebius <jemebius@xs4all.nl> - 2012-07-30 22:19 +0100
Re: "Using" statement? --- woodag@trap.ozemail.com.au (Andy Wood) - 2012-07-31 06:22 +0000
Re: "Using" statement? --- reply JEmebius <jemebius@xs4all.nl> - 2012-08-01 02:44 +0100
Re: "Using" statement? - Fritz Wuehler <fritz@spamexpire-201207.rodent.frell.theremailer.net> - 2012-07-31 20:46 +0200
Re: "Using" statement? - reply JEmebius <jemebius@xs4all.nl> - 2012-08-01 03:10 +0100
Re: "Using" statement? - reply Fritz Wuehler <fritz@spamexpire-201208.rodent.frell.theremailer.net> - 2012-08-07 16:36 +0200
Re: "Using" statement? - reply Nomen Nescio <nobody@dizum.com> - 2012-08-07 21:33 +0200
Re: "Using" statement? - reply Clark F Morris <cfmpublic@ns.sympatico.ca> - 2012-08-07 18:13 -0300
Re: "Using" statement? - "Michel Castelein" <arcis@advalvas.be.without.this.no.spam.tail> - 2012-08-03 11:13 +0200
Re: "Using" statement? - Anonymous <nobody@remailer.paranoici.org> - 2012-08-03 13:05 +0000
Re: "Using" statement? - Allodoxaphobia <knock_yourself_out@example.net> - 2012-08-03 13:29 +0000
Re: "Using" statement? - WAB JEmebius <jemebius@xs4all.nl> - 2012-08-04 00:03 +0100
Re: "Using" statement? - WAB Allodoxaphobia <knock_yourself_out@example.net> - 2012-08-04 03:14 +0000
Re: "Using" statement? - Nomen Nescio <nobody@dizum.com> - 2012-08-06 15:15 +0200
Re: "Using" statement? alistair.j.l.maclean@gmail.com - 2012-08-19 05:58 -0700
Re: "Using" statement? John W Kennedy <jwkenne@attglobal.net> - 2012-08-19 13:15 -0400
Re: "Using" statement? Nomen Nescio <nobody@dizum.com> - 2012-08-19 22:20 +0200
Re: "Using" statement? John W Kennedy <jwkenne@attglobal.net> - 2012-08-19 18:30 -0400
csiph-web