11.07.2015 Views

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DC instructionmodifier. You may not combine byte-length and bit-length modifiers. For example,a 12-bit field must be written L.12, not L1.4.The value of n must lie between 1 and the number of bits (a multiple of 8) that arerequired to make up the maximum number of bytes allowed in the type ofconstant being defined. The bit-length modifier can never be used with the CU-,G-, S-, V-, R-, J- and Q-type constants, and cannot be used with the A-type orY-type constant if the operand is simply or complexly relocatable.When only one operand and one nominal value are specified in a DC instruction,the following rules apply:1. The bit-length modifier allocates a field into which a constant is to beassembled. The field starts at a byte boundary and can run over one or morebyte boundaries, if the bit length is greater than 8.If the field does not end at a byte boundary and if the bit length is not amultiple of 8, the remainder of the last byte is filled with binary zeros. Forexample, DC FL.12’-1’ generates X’FFF0’.2. The nominal value of the constant is assembled into the field:a. Starting at the high order end for the C-, E-, D-, and L-type constantsb. Starting at the low-order end for the remaining types of constants thatsupport a bit-length modifier3. The nominal value is padded or truncated to fit the field (see “Padding andtruncation of values” on page 130).Note that “padding” is not the same as “filling”. In padding, the designated bitfield is completed according to the rules for the constant type. Filling is alwaysbinary zeros placed at the right end of an incomplete byte.C-type character constants are padded with EBCDIC spaces (hexadecimal X'40',and CA-type character constants are padded with ASCII spaces (hexadecimalX'20'). Other constant types are padded either by sign extension or with zeros,according to the type of the constant.The length attribute value of the symbol naming a DC instruction with a specifiedbit length is equal to the minimum number of integral bytes needed to contain thebit length specified for the constant. Consider the following example:TRUNCF DC FL.12’276’L’TRUNCF is equal to 2. Thus, a reference to TRUNCF addresses both the two bytesthat are assembled.|When more than one operand is specified in a DC instruction, or more than onenominal value in a DC operand, the above rules about bit-length modifiers alsoapply, except:1. The first field allocated starts at a byte boundary, but the succeeding fields startat the next available bit. For example, BL1 DC FL.12’-1,1000’ generatesX’FFF3E8’.2. After all the constants have been assembled into their respective fields, the bitsremaining to make up the last byte are filled with zeros. For example,BL2 DC FL.12’-1,1000,-2’ generates X’FFF3E8FFE0’If duplication is specified, filling with zeros occurs once at the end of all thefields occupied by the duplicated constants. For example, BL3 DC 3FL.12’-2’generates X’FFEFFEFFE0’.3. The length attribute value of the symbol naming the DC instruction is equal tothe number of integral bytes needed to contain the bit length specified for the136 <strong>HLASM</strong>: <strong>V1R6</strong> <strong>Language</strong> <strong>Ref</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!