System information
3.3.1 Labels
A label is an identifier that occurs on a particular statement. In general, the label is given a value
determined by the type of statement that it precedes. If the label occurs on a statement that
generates machine code or reserves memory space (for example, a MOV instruction or a DS
pseudo operation), the label is given the value of the program address that it labels. If the label
precedes an EQU or SET, the label is given the value that results from evaluating the operand
field. Except for the SET statement, an identifier can label only one statement.
When a label appears in the operand field, its value is substituted by the assembler. This value
can then be combined with other operands and operators to form the operand field for a particular
instruction.
3.3.2 Numeric Constants
A numeric constant is a 16-bit value in one of several bases. The base, called the radix of the
constant, is denoted by a trailing radix indicator. The following are radix indicators:
B is a binary constant (base 2).
O is a octal constant (base 8).
Q is a octal constant (base 8).
D is a decimal constant (base 10).
H is a hexadecimal constant (base 16).
Q is an alternate radix indicator for octal numbers because the letter O is easily confused with the
digit 0. Any numeric constant that does not terminate with a radix indicator is a decimal constant.
A constant is composed as a sequence of digits, followed by an optional radix indicator, where
the digits are in the appropriate range for the radix. Binary constants must be composed of 0 and
1 digits, octal constants can contain digits in the range 0-7, while decimal constants contain
decimal digits. Hexadecimal constants contain decimal digits as well as hexadecimal digits
A(10D), B(11D), C(12D), D(13D), E(14D), and F(15D). Note that the leading digit of a
hexadecimal constant must be a decimal digit to avoid confusing a hexadecimal constant with an
identifier. A leading 0 will always suffice. A constant composed in this manner must evaluate to
a binary number that can be contained within a 16-bit counter, otherwise it is truncated on the
right by the assembler.
3.2 Program Format CP/M Operating System Manual
3-5