
CHAPTER 2: ARCHITECTURE
2.1.4 Arithmetic operations with numbering system
In the S1C63000, some instructions support a numbering system. These instructions are indicated with the following notations in the instruction list.
ADC operand,n4
SBC operand,n4
INC operand,n4
DEC operand,n4
(See "Instruction List" or "Detailed Explanation of Instructions" for the contents of the operand.)
"n4" is a radix, and can be specified from 1 to 16. The additions/subtractions are done in the numbering system with n4 as the radix. Various counters (such as binary, octal, decimal and hexadecimal) can be realized easily by software.
The Z flag indicates that an operation result is "0" or not in arithmetics with any numbering system. The C flag indicates a carry/borrow according to the radix.
The following shows examples of these operation.
Example 1) Octal addition ADC %B,%A,8 (C flag is "0" before operation)
Setting value | Result |
| F register |
| ||
B register | A register | B register | E | I | C | Z |
0010B(2) | 0111B(7) | 0001B(1) | 0 | – | 1 | 0 |
0101B(5) | 0011B(3) | 0000B(0) | 0 | – | 1 | 1 |
Example 2) Decimal subtractio SBC %B,%A,10 (C flag is "0" before operation)
Setting value | Result |
| F register |
| ||
B register | A register | B register | E | I | C | Z |
1001B(9) | 0111B(7) | 0010B(2) | 0 | – | 0 | 0 |
0001B(1) | 0010B(2) | 1001B(9) | 0 | – | 1 | 0 |
Example 3)
LDB | %EXT,0 | ; Counter base address [0010H] |
LD | %XL,0x10 |
|
LDB | [%X]+,0 | ; Initial value setting [100] |
LDB | [%X]+,0 |
|
LDB | [%X]+,1 |
|
: |
|
|
: |
|
|
CTDOWN: |
| ; Count down |
LDB | %EXT,0 | ; Counter base address [0010H] |
LD | %XL,0x10 |
|
DEC | [%X]+,10 | ; Decrements digit 1 |
SBC | [%X]+,0,10 | ; Decrements carry from digit 2 |
SBC | [%X],0,10 | ; Decrements carry from digit 3 |
CALR | CTDISP | ; Count number display routine |
LD | %A,0 | ; Zero check |
ADD | %A,[%X] |
|
ADD |
| |
ADD | %A,[%X] |
|
ADD |
| |
JRNZ | CTEXIT | ; Return if counter is not zero |
CALR | CTOVER | ; Count over processing routine |
CTEXIT: |
|
|
RET |
|
|
This routine constructs a
S1C63000 CORE CPU MANUAL | EPSON | 7 |