HLASM Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Record types

HLASM Programmer's Guide
SC26-4941-06

The file contains records classified into different record types. Each type of record provides information about the assembler language program being assembled. Each record consists of two parts:
  • A 12-byte header section, which has the same structure for all record types.
  • A variable-length data section, which varies by record type.

The header section contains, among other items, the record code which identifies the type of record.

The record types, and their contents, written to the associated data file are:
Job Identification X'0000'
Provides information about the assembly job, the host system environment, and the names of the primary input data sets.
ADATA Identification X'0001'
Provides a precise time stamp, and a description of the character set used for character data in the file.

The time stamp is represented as Universal Time (UT) with the low-order bit representing 1 microsecond.

ADATA Compilation Unit Start/End X'0002'
Indicates where the associated data records for each assembly unit begin and end. The START record is written to the associated data file at the beginning of each assembly. The END record is written to the associated data file at the end of each assembly. The END record contains a count of the total number of records written to the associated data file.

When there are multiple assembler programs in the input file, there is a START and END record for each program assembled.

Output File X'000A'
Provides information about all the assembler output files used for the assembly.
Options File X'000B'
Provides information about the ASMAOPT file (z/OS and CMS) or library member (z/VSE) used for the assembly, if applicable.
Options X'0010'
Describes the assembler options used for the assembly.
External Symbol Dictionary X'0020'
Describes all the control sections, including DSECTs, defined in the program.
Source Analysis X'0030'
Describes a single source line.

There is one Source Analysis record in the file for each source record which appear in the listing as if PRINT ON,GEN was active. This includes those source records generated by macro instructions, or included by COPY instructions. A Source Analysis record is also produced for TITLE statements. The FOLD assembler option does not cause the source in the Source Analysis record to be converted to uppercase.

The Source Analysis records appear in the sequence they appear in the listing. Conditional assembly statements might cause the source statements to be skipped or the sequence of the records to be altered.

Source Error X'0032'
Describes errors in source program statements.

All Source Error records follow the Source Analysis record to which they apply.

DC/DS X'0034'
Describes the constant or storage defined by a source program statement that contains a DC, DS, CXD, DXD, CCW, CCW0, or CCW1 instruction.

If a source program statement contains one of the above, then a DC/DS record is written following the Source Analysis record.

If there is an error in the DC, DS, CXD, DXD, CCW, CCW0, or CCW1 instruction, the DC/DS record is not produced.

If the DC statement has a duplication factor greater than 1, and at least one of the operand values has a reference to the current location counter (*), then a DC extension record (X'0035') is generated.

DC Extension X'0035'
This record describes the object text generated by a DC statement when the DC statement has repeating fields. This record is only created if the DC statement has a duplication factor greater than 1 and at least one of the operand values has a reference to the current location counter (*).
Machine Instruction X'0036'
Describes the object code generated for a source program statement.

If a source program statement causes machine instructions to be generated, then a Machine Instruction record is written following the source record. If there is an error in the machine instruction, the Machine Instruction record follows the Source Error record.

Relocation Dictionary X'0040'
Describes the relocation dictionary information that is contained in the object module RLD records.
Symbol X'0042'
Describes a single symbol defined in the program.

There is one Symbol record for each symbol defined in the program, including literals.

Symbol and Literal Cross Reference X'0044'
Describes the references to a single symbol.

All Symbol and Literal Cross Reference records follow the Symbol record to which they apply.

Register Cross Reference X'0045'
Describes the references to a single register.
Macro and Copy Code Source Summary X'0060'
Describes the source of each macro and copy code member retrieved by the program.
Macro and Copy Code Cross Reference X'0062'
Describes the references to a single macro, or member copied by the COPY assembler instruction.
User Data X'0070'
Describes the data written by the ADATA assembler instruction.
Using Map X'0080'
Describes all USING, DROP, PUSH USING, and POP USING statements in the program.
Statistics X'0090'
Describes the statistics about the assembly.
Figure 1 shows part of the listing of an assembler program. If this assembler program is assembled with the ADATA option, the records produced in the associated data file are in the sequence shown below Figure 1.
Figure 1. Sample assembler program for associated data output
  Loc  Object Code    Addr1 Addr2  Stmt   Source Statement                                   HLASM R6.0  2008/07/11 17.48
                      00000 0001E     1 CSECTNAM CSECT                                                           FIG00010
000000 90EC D00C            0000C     2          STM   14,12,12(13)                                              FIG00020
                 R:F  00000           3          USING CSECTNAM,15                                               FIG00030
000004 0000 0000            00000     4          A     2,FIELD3                                                  FIG00040
** ASMA044E Undefined symbol - FIELD3
000008 98EC D00C            0000C     5          LM    14,12,12(13)                                              FIG00050
00000C 07FE                           6          BR    14                                                        FIG00060
                                      7          DROP  15                                                        FIG00070
                                      8          COPY  ADATA                                                     FIG00080
00000E                                9=FIELD1   DS    CL8                                                       ADA00010
000016                               10=FIELD2   DS    CL8                                                       ADA00020
                                     11          END                                                             FIG00090
Type
Description
X'0002'
ADATA Compilation Unit START record
X'0001'
ADATA Identification record
X'0000'
Job Identification record
X'0010'
Options record
X'0020'
External Symbol Dictionary record for CSECTNAM
X'0030'
Source record for statement 1 CSECTNAM CSECT
X'0030'
Source record for statement 2 STM 14,12,12(13)
X'0036'
Machine Instruction record for STM instruction
X'0030'
Source record for statement 3 USING CSECTNAM,15
X'0030'
Source record for statement 4 A 2,FIELD3
X'0032'
Source Error record for message ASMA044E
X'0036'
Machine Instruction record for A instruction
X'0030'
Source record for statement 5 LM 14,12,12(13)
X'0036'
Machine Instruction record for LM instruction
X'0030'
Source record for statement 6 BR 14
X'0036'
Machine Instruction record for BR instruction
X'0030'
Source record for statement 7 DROP 15
X'0030'
Source record for statement 8 COPY ADATA
X'0030'
Source record for statement 9 (From COPY member ADATA) FIELD1 DS CL8
X'0034'
DC/DS record for FIELD1
X'0030'
Source record for statement 10 (From COPY member ADATA) FIELD2 DS CL8
X'0034'
DC/DS record for FIELD2
X'0030'
Source record for statement 11 END
X'0042'
Symbol record for CSECTNAM
X'0044'
Symbol and Literal Cross Reference record for CSECTNAM
X'0042'
Symbol record for FIELD1
X'0042'
Symbol record for FIELD2
X'0042'
Symbol record for FIELD3
X'0044'
Symbol and Literal Cross Reference record for FIELD3
X'0044'
Symbol and Literal Cross Reference record for FIELD1
X'0044'
Symbol and Literal Cross Reference record for FIELD2
X'0060'
Macro and Copy Code Source Summary record for COPY ADATA
X'0062'
Macro and Copy Code Cross Reference record for COPY ADATA
X'0080'
USING Map record for USING on statement 3
X'0080'
USING Map record for DROP on statement 7
X'0045'
Register Cross Reference records…
 
X'0045'
…for each register referenced (0–15)1
X'0090'
Assembly Statistics record
X'0002'
ADATA Compilation Unit END record The count value in this record is 54.
Note:
  1. There is one X'0045' record for each of the sixteen registers due to the implicit references by the STM and LM instructions.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014