program-section-name The name of the program section (psect). argument-list A list containing the program section attributes and the program section alignment. Program sections are aligned when you specify an integer in the range of 0 to 16 or one of the five keywords listed in the following table. If you specify an integer, the program section is linked to begin at the next virtual address that is a multiple of two raised to the power of the integer. If you specify a keyword, the program section is linked to begin at the next virtual address that is a multiple of the corresponding value listed in the following table: KeywordSize (in Bytes) BYTE 20 = 1 WORD 21 = 2 LONG 22 = 4 QUAD 23 = 8 OCTA 24 = 16 QUAD is the default. Table 8 Program Section Attributes AttribuFunction ABS Absolute-The program section has an absolute address. An absolute program section contributes no binary code to the image, so its byte allocation request to the linker is 0. You cannot store initial values in an absolute program section with directives such as .BYTE, .WORD, .LONG, .QUAD. Usually the .BLKx directives are used in conjunction with label definitions within an absolute program section to define symbolic offsets within a structure. Compare this attribute with its opposite, REL. CON Concatenate-Program sections with the same name and attributes (including CON) from other modules are concatenated into one program section at link time. Their contents are concatenated in the order in which the linker acquires them. The allocated virtual address space is the sum of the individual requested allocations. Compare this attribute with its opposite, OVL. EXE Executable-The program section contains instructions. This attribute provides the capability of separating instructions from read-only and read/write data. The linker uses this attribute in gathering program sections and in verifying that the transfer address is in an executable program section. The assembler only allows you to place instructions in a program section that has either or both the EXE or MIX attributes. Compare this attribute with its opposite, NOEXE. GBL Global-Program sections that have the same name and attributes will be combined at link time into a single program section even when the individual program sections are in different clusters. This attribute is specified for Fortran COMMON block program sections. Compare this attribute with its opposite, LCL. LCL Local-The program section is restricted to its cluster. Compare this attribute with its opposite, GBL. MIX Mix-The program section can contain both data and instructions. The MIX and NOMIX attributes are assembly- time attributes that only affect assembler processing. The MIX and NOMIX attributes do not appear in the object module and do not affect linker processing. To mix instructions and data in the same psect, you must specify the MIX attribute. The NOMIX attribute is the default. If you choose to use instructions in a NOEXE psect, or use data directives in an EXE psect, you must specify the MIX attribute. The following limitations apply when using the MIX attribute: o Optimizations and alignment of code labels are not performed. Optimizations and code-label alignment are not performed on instructions placed in a MIX psect, regardless of whether the .ENABLE/.DISABLE options have been set, or if the command-line /OPTIMIZATION and /ALIGNMENT=CODE options have been specified. o Limited debugging information is provided. No PC-line (program counter) correlation information is generated for the instructions placed in a MIX psect. o The listing file includes only binary encoded instructions. All instructions that are placed in a MIX psect appear in the machine-code portion of the listing file, in their binary encoded instruction form as a data initializer to the .LONG data directive. There are no restrictions on data directives. Compare this attribute with its opposite, NOMIX. NOEXE Not Executable-The program section contains data only; it does not contain instructions. The assembler only allows you to place data allocations in a program section that has either or both the NOEXE and MIX attributes. Compare this attribute with its opposite, EXE. NOMIX The default attribute when you use the .PSECT directive. Compare this attribute with its opposite, MIX. NOPIC Non-Position-Independent Content-The program section is assigned to a fixed location in virtual memory (when it is in a shareable image). Compare this attribute with its opposite, PIC. NORD Nonreadable-Reserved for future use. Compare this attribute with its opposite, RD. NOSHR No Share-The program section is reserved for private use at execution time by the initiating process. Compare this attribute with its opposite, SHR. NOWRT Nonwritable-The contents of the program section cannot be altered (written into) at execution time. Compare this attribute with its opposite, WRT. OVR Overlay-Program sections with the same name and attributes (including OVR) from other modules receive the same relocatable base address in memory at link time. The allocated virtual address space is the requested allocation of the largest overlaying program section. Compare this attribute with its opposite, CON. PIC Position-Independent Content-The program section can be relocated; that is, it can be assigned to any memory area (when it is in a shareable image). Compare this attribute with its opposite, NOPIC. RD Readable-Reserved for future use. Compare this attribute with its opposite, NORD. REL Relocatable-The linker assigns the program section a relocatable base address. The contents of the program section can be code or data. Compare this attribute with its opposite, ABS. SHR Share-The program section can be shared at execution time by multiple processes. This attribute is assigned to a program section that can be linked into a shareable image. Compare this attribute with its opposite, NOSHR. WRT Write-The contents of the program section can be altered (written into) at execution time. Compare this attribute with its opposite, NOWRT. Table 9 Default Program Section Attributes Default Attribute Opposite Attribute CON OVR EXE NOEXE LCL GBL NOMIX MIX NOPIC PIC NOSHR SHR RD NORD REL ABS WRT NOWRT