22.02.2015 Views

HLASM Language Reference

HLASM Language Reference

HLASM Language Reference

SHOW MORE
SHOW LESS

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

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

DC Instruction—Hexadecimal Floating-Point Constants<br />

The excess-64 binary notation is obtained by adding +64 to the value of the<br />

exponent (which lies between −64 and +63) to yield the characteristic (which lies<br />

between 0 and 127).<br />

Notes:<br />

1. The L-type floating-point constant resembles two contiguous D-type constants.<br />

The sign of the second doubleword is assumed to be the same as the sign of<br />

the first.<br />

The characteristic for the second doubleword is equal to the characteristic for<br />

the first minus 14 (the number of hexadecimal digits in the fractional portion of<br />

the first doubleword). No indication is given if the characteristic of the second<br />

doubleword is zero.<br />

| The L-type and LH-type floating-point constants are double-word aligned. The<br />

| LQ-type is quad-word aligned. A DC LQ forces the alignment to a quad-word<br />

| boundary.<br />

2. If scaling has been specified, hexadecimal zeros are added to the left of the<br />

normalized fraction (causing it to become unnormalized), and the exponent in<br />

the characteristic field is adjusted accordingly. (For further details on scaling,<br />

see “Subfield 5: Modifier” on page 136.)<br />

3. The fraction is rounded according to the implied or explicit length of the<br />

constant. The resulting number does not differ from the exact value specified<br />

by more than one in the last place.<br />

Note: You can control rounding by using the 'H' type extension and<br />

specifying the rounding mode.<br />

4. Negative fractions are carried in true representation, not in the<br />

two's-complement form.<br />

5. Duplication is applied after the constant has been assembled.<br />

6. An implied length of 4 bytes is assumed for a short (E) constant and 8 bytes for<br />

a long (D) constant. An implied length of 16 bytes is assumed for an extended<br />

(L) constant. The constant is aligned at the correct word (E) or doubleword (D<br />

and L) boundary if a length is not specified. However, any length up to and<br />

including 8 bytes (E and D) or 16 bytes (L) can be specified by a length<br />

modifier. In this case, no boundary alignment occurs.<br />

7. Signed zero values are correctly generated for type extensions H and B.<br />

Without a type extension, zero values of either sign are assembled with positive<br />

sign.<br />

Any of the following statements can be used to specify 46.415 as a positive,<br />

fullword, floating-point constant; the last is a machine instruction statement with a<br />

literal operand. Note that each of the last two constants contains an exponent<br />

modifier.<br />

DC<br />

E'46.415'<br />

DC<br />

E'46415E–3'<br />

DC<br />

E'+464.15E–1'<br />

DC<br />

E'+.46415E+2'<br />

DC<br />

EE2'.46415'<br />

AE<br />

6,=EE2'.46415'<br />

The following would generate 3 doubleword floating-point constants.<br />

166 <strong>HLASM</strong> V1R5 <strong>Language</strong> <strong>Reference</strong>

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

Saved successfully!

Ooh no, something went wrong!