R9? I might believe R0.
In general, I prefer the code with USING over the code with explicit offset and
base, although I might use the second if I'm only going to reference a single
field in the control block. If I need to access multiple instances of the same
control block, I would prefer to use a labeled USING or, in some cases, a
labeled dependent USING.
USING PSA,R0
L R10,PSATOLD Get current TCB
DROP R0
THIS USING TCB,R10
L R9,THIS.TCBJSCB Get JSCB
l R11,THIS.TCBOTCB
THAT USING TCB,R11
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
From: IBM Mainframe Assembler List [[email protected]] on behalf
of Phil Smith III [[email protected]]
Sent: Thursday, June 1, 2023 12:24 PM
To: [email protected]
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!)