DSECT instruction

The DSECT instruction identifies the beginning or continuation of a dummy control section. One or more dummy sections can be defined in a source module.

Read syntax diagramSkip visual syntax diagram>>-+--------+--DSECT-------------------------------------------><
   '-symbol-'         
 
symbol
is one of the following:

The DSECT instruction can be used anywhere in a source module after the ICTL instruction.

If symbol denotes an ordinary symbol, the ordinary symbol identifies the dummy section. If several DSECT instructions within a source module have the same symbol in the name field, the first occurrence initiates the dummy section and the rest indicate the continuation of the dummy section. The ordinary symbol denoted by symbol represents the address of the first byte in the dummy section, and has a length attribute value of 1.

If symbol is not specified, or if name is a sequence symbol, the DSECT instruction initiates or indicates the continuation of the unnamed control section.

The location counter for a dummy section is always set to an initial value of 0. However, when an interrupted dummy control section is continued using the DSECT instruction, the location counter last specified in that control section is continued.

The source statements that follow a DSECT instruction belong to the dummy section identified by that DSECT instruction.

Notes:
  1. The assembler language statements that appear in a dummy section are not assembled into object code.
  2. When establishing the addressability of a dummy section, the symbol in the name field of the DSECT instruction, or any symbol defined in the dummy section can be specified in a USING instruction.
  3. A symbol defined in a dummy section can be specified in an address constant only if the symbol is paired with another symbol from the same dummy section, and if the symbols have opposite signs.

To effect references to the storage area defined by a dummy section, do the following:

The values assigned to symbols defined in a dummy section are relative to the initial statement of the section. Thus, all machine instructions that refer to names defined in the dummy section refer, at execution time, to storage locations relative to the address loaded into the register.

Figure 21 shows an example of how to code the DSECT instruction. The sample code is referred to as "Assembly-2".

Assume that two independent assemblies (Assembly-1 and Assembly-2) have been loaded and are to be run as a single overall program. Assembly-1 is a routine that

  1. Places a record in an area of storage
  2. Places the address of the storage area in general register 3
  3. Branches to Assembly-2 to process the record

The storage area from Assembly-1 is identified in Assembly-2 by the dummy control section (DSECT) named INAREA. Parts of the storage area that you want to work with are named INCODE, OUTPUTA, and OUTPUTB. The statement USING INAREA,3 assigns general register 3 as the base register for the INAREA DSECT. General register 3 contains the address of the storage area. Because the symbols in the DSECT are defined relative to the beginning of the DSECT, the address values they represent are, at the time of program execution, the actual storage locations of the storage area that general register 3 addresses.

Figure 21. Sample code using the DSECT instruction (Assembly-2)
ASEMBLY2 CSECT
         USING           *,15
         USING           INAREA,3
         CLI             INCODE,C'A'
         BE              ATYPE
         MVC             OUTPUTA,DATA_B
         MVC             OUTPUTB,DATA_A
         B               FINISH
ATYPE    DS              0H
         MVC             OUTPUTA,DATA_A
         MVC             OUTPUTB,DATA_B
FINISH   BR              14
DATA_A   DC              CL8'ADATA'
DATA_B   DC              CL8'BDATA'
INAREA   DSECT
INCODE   DS              CL1
OUTPUTA  DS              CL8
OUTPUTB  DS              CL8
         END

[ Top of Page | Previous Page | Next Page | Contents | Index ]