Zoned decimal constants
Each digit is converted into its 8 bit EBCDIC representation (see 4 in Table 1). The sign indicator (see 5 in Table 1) replaces the first four bits of the low-order byte of the constant.
Here are the range of values that can be assembled into a decimal constant:
Type of decimal constant | Range of values that can be specified |
---|---|
Packed | 1031-1 to -1031 |
Zoned | 1016-1 to -1016 |
For both packed and zoned decimals, a plus sign is translated into the hexadecimal digit C, a minus sign into the digit D. The packed decimal constants (P-type) are used for processing by the decimal instructions.
If, in a constant with an implicit length, an even number of packed decimal digits is specified, one digit is left unpaired because the rightmost digit is paired with the sign. Therefore, in the leftmost byte, the leftmost four bits are set to zeros and the rightmost four bits contain the unpaired (first) digit.
Subfield | Value | Example | Result | |
---|---|---|---|---|
1. | Duplication factor | Allowed | ||
2. | Type | P and Z | ||
3. | Type Extension | Not allowed | ||
4. | Program type | Allowed | ||
5. | Modifiers | |||
Length: | 1 to 16 (byte length) .1 to .128 (bit length) |
|||
Implicit length: (Length modifier not present) |
As needed | Packed:P DC P'+593' Z DC Z'-593' |
L'P = 2 L'Z= 3 |
|
Alignment: | Byte | |||
Scale: | Not allowed | |||
Exponent: | Not allowed | |||
6. | Nominal value Represented by: |
Decimal digits (0 to 9) |
Packed:DC P'5.5'
1
DC P'55'
1 DC P'+555' 2 DC P'-777' DC Z'-555'
4 |
Object code X'055C' X'055C' X'555C' 3 X'777D' 3 X'F5F5D5' 5 |
Enclosed by: | Apostrophes | |||
Exponent allowed: | No | |||
Number of values per operand: | Multiple | |||
Padding: | Packed: with binary zeros at left with EBCDIC zeros ( X'F0' ) at left |
|||
Truncation of assembled value: | At left |
DECIMALS DC PL8'+25.8,-3874,+2.3',Z'+80,-3.72'
UNPK OUTAREA,=PL2'+25'