I would use the first method, because it is more understandable for users* that 
don't have deep knowledge of both HLASM syntax and what the base field name is 
in the DSECTs.


* like myself


-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of Phil Smith III
Sent: Thursday, June 1, 2023 11:24 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Assembler theology question

We've all seen (and written!) code like this:
         USING PSA,R9
         L     R10,PSATOLD             Get current TCB
         DROP  R9

         USING TCB,R10
         L     R9,TCBJSCB              Get JSCB
         DROP  R10

I've also seen (and probably written) the equivalent:
         L     R10,PSATOLD-PSA(,R9)    Get current TCB
         L     R9,TCBJSCB-TCB(,R1)     Get JSCB

I like the latter because it's tighter to read, reduces the USING map, keeps 
you out of trouble if you decide to use R9 or R10 for something global, etc. 
But I can also see a theological argument that you really *are* using (USING?) 
the control block.

Thoughts? (Yes, I *said* it was theology, so I'm prepared for religious 
arguments!)

Reply via email to