
30
to decimal by considering each four bits from the right. Binary 0101 is deci-
mal 5; binary 0111 is decimal 7. The decimal equivalent would thus be 5,757.
Note that this is not the same numeric value as the hexadecimal equivalent
of 0101011101010111, which would be 5,757 hexadecimal, or 22,359 in deci-
mal (16
3
x 5 + 16
2
x 7 + 16 x 5 + 7).
Because the numeric equivalent of each four BCD binary bits must be nu-
merically equivalent to a decimal value, any four bit combination numerically
greater then 9 cannot be used, e.g., 1011 is not allowed because it is numeri-
cally equivalent to 11, which cannot be expressed as a single digit in decimal
notation. The binary bits 1011 are of course allowed in hexadecimal are a
equivalent to the hexadecimal digit C.
Decimal points are used in timers only. The least significant digit represents
tenths of a second. All arithmetic instructions operate on integers only.
Normally, when the content of a data area word is specified for an instruction,
the instruction is performed directly on the content of that word. For example,
suppose CMP(32) (COMPARE), with word 05 as the first operand and DR 10
as the second operand, is used in the program. When this instruction is ex-
ecuted, the content of word 05 is compared with that of DR 10.
It is also possible, however, to use indirect DR addresses as operands for
instructions. If
*
DR 01 is specified as the data for a programming instruction,
the asterisk in front of DR indicates that it is an indirect address that specifies
another DR word which contains the actual operand data. If, in this case, the
content of DR 01 is 06, then
*
DR 01 indicates DR 06 as the word that con-
tains the desired data, and the content of DR 06 is used as the operand in
the instruction. The following example shows this type of indirect addressing
with the MOVE instruction (MOV(30)).
MOV(30)
*
DR 01
LR 00
Word
Content
DR 00
4C01
DR 01
0006
DR 02
F693
DR 06
5555
DR 07
21A5
DR 08
D945
5555
moved to
LR 00.
Indicates
DR 06.
Indirect
address
3-2-2
I/O Bits
Input bits are used to read the status of input terminals, i.e., input bits are
used as operands in the program to control program execution. Output bits
are used to control the status of output terminals, i.e., various conditions in
the program are used to determine the status of output bits through the OUT-
PUT and other instructions. The relationship of the I/O bits and terminals in
the SP10 is shown below. The relationship between I/O bits and terminals in
the SP16 and SP20 follows the same pattern.
Decimal Points
Indirect Addressing
Memory Areas
Section 3-2