I disagree; good practice is to start your code at offset zero and put your 
data in a LOCTR that goes at the end. But if you want to do it the other way, 
there is no need to branch around anything. 

What is the oldest processor you have to support? If you are allowed to use 
relative, then the size limit is much larger. The Devil is in the details.


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


________________________________________
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf 
of Jon Perryman <jperr...@pacbell.net>
Sent: Monday, December 2, 2019 8:51 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: BASR to AMODE 64 (Baseless code)

 On Monday, December 2, 2019, 02:56:13 PM PST, Paul Gilmartin 
<00000014e0e4a59b-dmarc-requ...@listserv.uga.edu> wrote:


> In the source?  Branch around them or use LOCTR?  What difference

> does it make as long as instructions plus data do not exceed 4Ki?


For programs that don't use a base register for the code, good coding practices 
requires LOCTR be used to place constants at the beginning of your program 
(with branch around). As long as constants never exceed 4KB, the program won't 
need to be reworked to free a register.

> dissension about whether control block definitions should

> precede or follow instructions.
> And the former group was biased by experience with languages
> which required symbols defined before reference.

CB location in the source is not always cosmetic because of the macro language. 
I've worked on a product that will not assemble with the CB's at the end of 
source. The cosmetic problem of placing CB's at the beginning is no longer a 
problem because ISPF  and SDSF editor allows lines to be hidden. Just write an 
edit macro to hide CB definitions.

Jon.


Reply via email to