![Epson S1C17 Series Manual Download Page 197](http://html.mh-extra.com/html/epson/s1c17-series/s1c17-series_manual_107781197.webp)
APPENDIX LIST OF S1C17 CORE INSTR
Ap-4
Seik
o Epson Corporation
S1C17 CORE MANU
AL
(REV
. 1.2)
Integer Arithmetic Operation Instructions (1)
S1C17 Core Instruction Set
Opcode
add
add/c
add/nc
add
add.a
add.a/c
add.a/nc
add.a
adc
adc/c
adc/nc
adc
sub
sub/c
sub/nc
sub
sub.a
sub.a/c
sub.a/nc
sub.a
sbc
sbc/c
sbc/nc
sbc
cmp
cmp/c
cmp/nc
cmp
Operand
%rd, %rs
%rd, %rs
%rd, %rs
%rd, imm7
%rd, %rs
%rd, %rs
%rd, %rs
%sp, %rs
%rd, imm7
%sp, imm7
%rd, %rs
%rd, %rs
%rd, %rs
%rd, imm7
%rd, %rs
%rd, %rs
%rd, %rs
%rd, imm7
%rd, %rs
%rd, %rs
%rd, %rs
%sp, %rs
%rd, imm7
%sp, imm7
%rd, %rs
%rd, %rs
%rd, %rs
%rd, imm7
%rd, %rs
%rd, %rs
%rd, %rs
%rd, sign7
Function
rd(15:0)
←
rd(15:0)+rs(15:0), rd(23:16)
←
0
rd(15:0)
←
rd(15:0)+rs(15:0), rd(23:16)
←
0 if C = 1 (nop if C = 0)
rd(15:0)
←
rd(15:0)+rs(15:0), rd(23:16)
←
0 if C = 0 (nop if C = 1)
rd(15:0)
←
rd(15:0)+imm7(zero extended), rd(23:16)
←
0
rd(23:0)
←
rd(23:0)+rs(23:0)
rd(23:0)
←
rd(23:0)+rs(23:0) if C = 1 (nop if C = 0)
rd(23:0)
←
rd(23:0)+rs(23:0) if C = 0 (nop if C = 1)
sp(23:0)
←
sp(23:0)+rs(23:0)
rd(23:0)
←
rd(23:0)+imm7(zero extended)
sp(23:0)
←
sp(23:0)+imm7(zero extended)
rd(15:0)
←
rd(15:0)+rs(15:0)+C, rd(23:16)
←
0
rd(15:0)
←
rd(15:0)+rs(15:0)+C, rd(23:16)
←
0 if C = 1 (nop if C = 0)
rd(15:0)
←
rd(15:0)+rs(15:0)+C, rd(23:16)
←
0 if C = 0 (nop if C = 1)
rd(15:0)
←
rd(15:0)+imm7(zero exC, rd(23:16)
←
0
rd(15:0)
←
rd(15:0)-rs(15:0), rd(23:16)
←
0
rd(15:0)
←
rd(15:0)-rs(15:0), rd(23:16)
←
0 if C = 1 (nop if C = 0)
rd(15:0)
←
rd(15:0)-rs(15:0), rd(23:16)
←
0 if C = 0 (nop if C = 1)
rd(15:0)
←
rd(15:0)-imm7(zero extended), rd(23:16)
←
0
rd(23:0)
←
rd(23:0)-rs(23:0)
rd(23:0)
←
rd(23:0)-rs(23:0) if C = 1 (nop if C = 0)
rd(23:0)
←
rd(23:0)-rs(23:0) if C = 0 (nop if C = 1)
sp(23:0)
←
sp(23:0)-rs(23:0)
rd(23:0)
←
rd(23:0)-imm7(zero extended)
sp(23:0)
←
sp(23:0)-imm7(zero extended)
rd(15:0)
←
rd(15:0)-rs(15:0)-C, rd(23:16)
←
0
rd(15:0)
←
rd(15:0)-rs(15:0)-C, rd(23:16)
←
0 if C = 1 (nop if C = 0)
rd(15:0)
←
rd(15:0)-rs(15:0)-C, rd(23:16)
←
0 if C = 0 (nop if C = 1)
rd(15:0)
←
rd(15:0)-imm7(zero extended)-C, rd(23:16)
←
0
rd(15:0)-rs(15:0)
rd(15:0)-rs(15:0) if C = 1 (nop if C = 0)
rd(15:0)-rs(15:0) if C = 0 (nop if C = 1)
rd(15:0)-sign7(sign extended)
Cycle
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
EXT
*
1
*
1
*
1
*
3
*
2
*
2
*
2
*
2
*
4
*
4
*
1
*
1
*
1
*
3
*
1
*
1
*
1
*
3
*
2
*
2
*
2
*
2
*
4
*
4
*
1
*
1
*
1
*
3
*
1
*
1
*
1
*
3
D
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
IL
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
IE
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
Z
↔
↔
↔
↔
–
–
–
–
–
–
↔
↔
↔
↔
↔
↔
↔
↔
–
–
–
–
–
–
↔
↔
↔
↔
↔
↔
↔
↔
N
↔
↔
↔
↔
–
–
–
–
–
–
↔
↔
↔
↔
↔
↔
↔
↔
–
–
–
–
–
–
↔
↔
↔
↔
↔
↔
↔
↔
C
↔
–
–
↔
–
–
–
–
–
–
↔
–
–
↔
↔
–
–
↔
–
–
–
–
–
–
↔
–
–
↔
↔
–
–
↔
V
↔
↔
↔
↔
–
–
–
–
–
–
↔
↔
↔
↔
↔
↔
↔
↔
–
–
–
–
–
–
↔
↔
↔
↔
↔
↔
↔
↔
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
Code
MSB
LSB
Mnemonic
Flags
Remarks
*
1) With one EXT: rd
←
rs <op> imm13, With two EXT: rd
←
rs <op> imm16
*
2) With one EXT: rd
←
rs <op> imm13, With two EXT: rd
←
rs <op> imm24
*
3) With one EXT: data = imm16/sign16
*
4) With one EXT: data = imm20, With two EXT: data = imm24
imm7
imm7
imm7
imm7
imm7
imm7
imm7
sign7
imm7
rd
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rs
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd
rd