That's what I was thinking. Funky way of coding it, but valid.

Charles


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Seymour J Metz
Sent: Monday, November 11, 2019 9:59 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Questionable Instructions in Obtaining EAX documentation

What if R9 is not supposed to be zero? Maybe the code is looking at the PSA
of another processor.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


________________________________________
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on
behalf of Tom Marchant <000000a69b48f3bb-dmarc-requ...@listserv.uga.edu>
Sent: Monday, November 11, 2019 10:39 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Questionable Instructions in Obtaining EAX documentation

On Fri, 8 Nov 2019 14:15:11 -0700, Bob Raicer wrote:

>Well, the statement from Peter Relson (and others) which is
>essentially:
>----------
>LA R1,1 is exactly equivalent to LA R1,1(0).  Just look at the
>generated object code.
>----------
>is not totally true.  It all depends upon which USINGs are in effect.
>
>Take a peek at the following example (admittedly a bit unusual, but
>perfectly legitimate).
>
>    Loc   Object Code      Addr1    Addr2    Stmt   Source Statement
>00000000                00000000 00000008      1 EXAMPLE  CSECT ,
>                     R:9 00000000               2          USING 0,9
>00000000 4120 9100               00000100      3          LA 2,256
>00000004 4120 0100               00000100      4          LA 2,256(,0)
>                                                5          END   ,

Yes, your example shows that the two forms can be different, but,

1. I can't think of a reason to ever code USING 0,r. Registers are a
scarce resource.

2. The code snippet is missing an instruction to clear register 9.

--
Tom Marchant
=

Reply via email to