Going one step further, define TWO data location counters, one for stuff
that is required to be within 4K of the static base register i.e. are
referenced by SS instructions, and another for stuff that can be referenced
by instructions with displacements larger than 4K (i.e. via LY, STY, LLC,
LARL etc).

Robert Ngan
CSC Financial Services Group



From:   Tom Marchant <[email protected]>
To:     [email protected]
Date:   2013/04/08 09:46
Subject:        Re: Relative Branches / IBM macros
Sent by:        IBM Mainframe Assembler List <[email protected]>



On Fri, 5 Apr 2013 22:29:03 +0200, Bernd Oppolzer wrote:

>There is also a LOOP macro in the SP macro set, which generates in some
>cases
>(in the NORENT case) a decimal loop counter, which is in defined inline,
>near the
>loop instructions.

You might want to look at using LOCTR instructions to group data areas
together.  My entry macro includes code similar to this:

    J  BEGIN
DATA  LOCTR
    DC  C'Program identifiers, etc'
CODE  LOCTR
BEGIN  DS  0H


Later in the code, if I want to define a data area, I can include:

(instructions)
DATA  LOCTR
      DC  (whatever)
CODE  LOCTR
(More instructions)

Then at the end of the program, I code

DATA  LOCTR
      LTORG

All of the data areas are then grouped by the assembler at the beginning of
the program, covered by a base register that points to the beginning.

--
Tom Marchant

Reply via email to