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


DC/DS record—X'0034'

HLASM Programmer's Guide
SC26-4941-06

Field Size Description
ESDID FL4 The ESDID for the source record.
Type Flag XL1
1... ....
Bit 1 = Define Constant (DC, CXD, CCW, CCW0, or CCW1), Bit 0 = Define Storage (DS or DXD)
.1.. ....
If "Define Constant" bit is set, bit 1 indicates the operand is a CXD. If "Define Constant" bit is not set, bit 1 indicates the operand is a DXD.
..1. ....
If "Define Constant" bit is set, bit 1 indicates the operand is a CCW, CCW0, or CCW1.
...1 ....
Bit 1 indicates this record is associated with an object text record (X'0035'). The object text record is created when a 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 (*).
.... 1...
Reserved
.... .1..
Reserved
.... ..1.
Reserved
.... ...1
Reserved
  XL5 Reserved
Statement Number FL4 The statement number of the source line that generated this text, if known. Otherwise it contains zeros.
Number of operands FL4 The number of operands defined by the source record.

The groups of nine operand fields below occur n times depending on the value in this field.

Offset of operands FL4 The offset from the beginning of this record to the first group of operand fields. A value of binary zeros indicates that there are no operands.
    Start of operand group, one group per operand. The ellipses (...) indicate the fields are grouped.
...Offset of next operand FL4 The offset from the beginning of this record to the next group of operand fields. A value of binary zeros indicates that there are no more operands.
...Location Counter FL4 The location counter for this operand.
...Duplication Factor FL4 The duplication factor for this operand.
...Bit Offset XL1 The offset within byte (0–7) for bit-length operands.
...Type Attribute XL1 The value that the assembler Type Attribute reference returns (see "Type attribute (T')" in the HLASM Language Reference).
...Type Extension CL1 The type extension for this operand.
...Program Type XL4 The value that the assembler SYSATTRP() internal function returns (see "SYSATTRP" in the HLASM Language Reference).
  XL4 Reserved
...Number of values FL4 The number of nominal values defined by this operand.

The groups of five nominal-value fields below occur n times depending on the value in this field.

...Offset of values FL4 The offset from the beginning of this record to the first group of nominal-value fields. A value of binary zeros indicates that there are no nominal values.
    End of operand group.
    Start of nominal-value group, one group per value. The ellipses (......) indicate the fields are grouped.
......Offset of next nominal value FL4 The offset from the beginning of this record to the next group of nominal-value fields. A value of binary zeros indicates that there are no more nominal values.
......Value offset FL4 The offset from the beginning of this record to the generated nominal value. A value of binary zeros indicates that there is no generated nominal value.
......Byte length FL4 The byte length of the nominal value, if defined with a byte length.
......Bit length FL4 The bit length of the nominal value, if defined with a bit length.
......Nominal value XL(n) If this record describes a DC, CXD, CCW, CCW0, or CCW1, then the value contains the nominal value. (A DC with a zero duplication factor is treated the same as a DS and this field is not present). If this record describes a DS or DXD, this field is not present.

If a byte length is specified (or implied), the value contains the number of bytes specified. The value field is aligned according to the operand type. For example, hexadecimal values are left-aligned and packed values are right-aligned.

If a bit length is specified, the length of the value is the number of bytes required to contain the required bits. For example, if the bit length was 10, the value is 2 bytes in length. The value is in the leftmost 10 bits. Alignment within the specified number of bits is according to the operand type. For example, hexadecimal values are left-aligned and packed values are right-aligned.

    End of nominal-value group.
Note:
  1. Only one of the two fields for byte/bit lengths contains a non-zero value. This means that there is a byte length, or a bit length, but not both.
  2. No description of any inter-statement boundary alignment padding is produced. Any padding because of alignment can be calculated by comparing the location counter of the current operand with the sum of the location counter and length of the previous operand.

    The length of the previous operand needs to be calculated using the duplication factor, number of nominal values, and the length of each nominal value.

  3. High Level Assembler creates the DC Extension record X'0035' when the duplication factor is greater than 1 and at least one of the operand values has a reference to the current location counter (*).

    See topic Example6.

  4. Where the number of operands exceeds the record size for the associated data file, the record is continued on the next record. The continuation flag is set in the common header section of the record. The current number of operands (for that record) is stored in the record and the record written to the associated data file. The next record contains the subsequent operands. The count of the number of operands is a count for the current record.

    Fields that have been written are not repeated in the next record. Fixed-length fields are initialized to binary zeros or spaces, and variable-length fields have a length of binary zeros.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014