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!)