Or you can just put CODE LOCTR before your entry point instruction.

Here is the slightly edited beginning of one of my modules. This gets the 
copyright constant first in the object code, and avoids any extra branches. 
(ABEND EDCPRLG is an entry point.)

CZ4MIA$L CSECT
         SYSSTATE ARCHLVL=2,OSREL=ZOSV1R6    V1R9 makes no difference?
DATA     LOCTR ,
         DC    C'Copyright 2010, 2015, 2016 CorreLog Inc.'
CODE     LOCTR ,
ABEND    EDCPRLG DSALEN=CDSALEN,BASEREG=NONE  
         LARL  R12,CZ4MIA$L
         USING CZ4MIA$L,R12
         Etc.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Tom Marchant
Sent: Thursday, November 15, 2018 8:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ASMA034E

On Fri, 16 Nov 2018 02:17:47 +1100, Greg Price wrote:

>On 2018-11-16 1:47 AM, Ward Able, Grant wrote:
>> Can someone point me to a reasonably simple example?
>
>If you can do branch instructions then you can do branch-relative
>instructions. Apart from RR instructions (BR, BASR, BALR, BASSM, BSM,
>BAKR and any others I've missed) replace the B that starts the branch
>instruction mnemonic with BR, or as I prefer to do, with J (for jump).
>
>eg. BNH -> JNH and BCT -> JCT and BAS -> JAS etc.

The only thing that you can't do is an indexed branch, where you use a 
base register and an index register.

>Put all the stuff which needs to be cover by a base register after all
>the instructions, and start the area with a label, and "use" that.

That's one way to do it. Another is to consolidate all the constants at the 
beginning of the program using LOCTR. For example, like this:

PROGNAME J     START
DATA     LOCTR

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to