I had a feeling someone would point out that technicality, so... Let's not consider a temporarily-used-for-one-RX-instruction base register to be the same thing as a program-wide base register ;-)
Also, a "baseless" program is less likely to be register-constrained; but, if it were, using "temp" R1 instead of, say R10, works just as well. http://www.compuware.com/ The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of Paul Gilmartin Sent: Wednesday, June 06, 2012 11:02 AM To: [email protected] Subject: Re: Base registers On Jun 6, 2012, at 07:28, Watkins, Douglas wrote: > Here's one way to do standard EXecute without a base register: > > AHI R2,-1 Minus 1 for EX > *!not yetEXRL R2,_EX_MVC_OUTPUT (Move data to output buffer) > LARL R10,_EX_MVC_OUTPUT Move data to > EX R2,0(,R10) output buffer > Well, R10 looks like a base register to me. If you're critically register-constrained, this may be a problem. You could likewise do: AHI R2,-1 Minus 1 for EX BALR R10,0 EX R2,EX_MVC_OUTPUT-*(,R10) ... in fewer bytes of code (if I got it right). -- gil
