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 =