Epson S1C17 Series Manual page 197

Cmos 16-bit single chip microcontroller
Hide thumbs Also See for S1C17 Series:
Table of Contents

Advertisement

Integer Arithmetic Operation Instructions (1)
Mnemonic
Opcode
Operand
MSB
add
%rd, %rs
0
0
1
1
add/c
%rd, %rs
0
0
1
1
add/nc
%rd, %rs
0
0
1
1
add
%rd, imm7
1
0
0
0
add.a
%rd, %rs
0
0
1
1
add.a/c
%rd, %rs
0
0
1
1
add.a/nc
%rd, %rs
0
0
1
1
add.a
%sp, %rs
0
0
1
1
%rd, imm7
0
1
1
0
%sp, imm7
0
1
1
0
adc
%rd, %rs
0
0
1
1
adc/c
%rd, %rs
0
0
1
1
adc/nc
%rd, %rs
0
0
1
1
adc
%rd, imm7
1
0
0
0
sub
%rd, %rs
0
0
1
1
sub/c
%rd, %rs
0
0
1
1
sub/nc
%rd, %rs
0
0
1
1
sub
%rd, imm7
1
0
0
0
sub.a
%rd, %rs
0
0
1
1
sub.a/c
%rd, %rs
0
0
1
1
sub.a/nc
%rd, %rs
0
0
1
1
sub.a
%sp, %rs
0
0
1
1
%rd, imm7
0
1
1
0
%sp, imm7
0
1
1
0
sbc
%rd, %rs
0
0
1
1
sbc/c
%rd, %rs
0
0
1
1
sbc/nc
%rd, %rs
0
0
1
1
sbc
%rd, imm7
1
0
0
0
cmp
%rd, %rs
0
0
1
1
cmp/c
%rd, %rs
0
0
1
1
cmp/nc
%rd, %rs
0
0
1
1
cmp
%rd, sign7
1
0
0
1
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
Code
LSB
1
0
rd
1
0
0
0
rs
rd(15:0)←rd(15:0)+rs(15:0), rd(23:16)←0
1
0
rd
0
0
0
0
rs
rd(15:0)←rd(15:0)+rs(15:0), rd(23:16)←0 if C = 1 (nop if C = 0)
1
0
rd
0
1
0
0
rs
rd(15:0)←rd(15:0)+rs(15:0), rd(23:16)←0 if C = 0 (nop if C = 1)
0
0
rd
imm7
rd(15:0)←rd(15:0)+imm7(zero extended), rd(23:16)←0
0
0
rd
1
0
0
0
rs
rd(23:0)←rd(23:0)+rs(23:0)
0
0
rd
0
0
0
0
rs
rd(23:0)←rd(23:0)+rs(23:0) if C = 1 (nop if C = 0)
0
0
rd
0
1
0
0
rs
rd(23:0)←rd(23:0)+rs(23:0) if C = 0 (nop if C = 1)
0
0
0
0
0
0
0
0
1
rs
sp(23:0)←sp(23:0)+rs(23:0)
0
0
rd
imm7
rd(23:0)←rd(23:0)+imm7(zero extended)
0
1
0
0
0
imm7
sp(23:0)←sp(23:0)+imm7(zero extended)
1
0
rd
1
0
0
1
rs
rd(15:0)←rd(15:0)+rs(15:0)+C, rd(23:16)←0
1
0
rd
0
0
0
1
rs
rd(15:0)←rd(15:0)+rs(15:0)+C, rd(23:16)←0 if C = 1 (nop if C = 0)
1
0
rd
0
1
0
1
rs
rd(15:0)←rd(15:0)+rs(15:0)+C, rd(23:16)←0 if C = 0 (nop if C = 1)
0
1
rd
imm7
rd(15:0)←rd(15:0)+imm7(zero extended)+C, rd(23:16)←0
1
0
rd
1
0
1
0
rs
rd(15:0)←rd(15:0)-rs(15:0), rd(23:16)←0
1
0
rd
0
0
1
0
rs
rd(15:0)←rd(15:0)-rs(15:0), rd(23:16)←0 if C = 1 (nop if C = 0)
1
0
rd
0
1
1
0
rs
rd(15:0)←rd(15:0)-rs(15:0), rd(23:16)←0 if C = 0 (nop if C = 1)
1
0
rd
imm7
rd(15:0)←rd(15:0)-imm7(zero extended), rd(23:16)←0
0
0
rd
1
0
1
0
rs
rd(23:0)←rd(23:0)-rs(23:0)
0
0
rd
0
0
1
0
rs
rd(23:0)←rd(23:0)-rs(23:0) if C = 1 (nop if C = 0)
0
0
rd
0
1
1
0
rs
rd(23:0)←rd(23:0)-rs(23:0) if C = 0 (nop if C = 1)
0
0
0
0
0
0
0
1
1
rs
sp(23:0)←sp(23:0)-rs(23:0)
1
0
rd
imm7
rd(23:0)←rd(23:0)-imm7(zero extended)
1
1
0
0
0
imm7
sp(23:0)←sp(23:0)-imm7(zero extended)
1
0
rd
1
0
1
1
rs
rd(15:0)←rd(15:0)-rs(15:0)-C, rd(23:16)←0
1
0
rd
0
0
1
1
rs
rd(15:0)←rd(15:0)-rs(15:0)-C, rd(23:16)←0 if C = 1 (nop if C = 0)
rd
0
1
1
1
rs
1
0
rd(15:0)←rd(15:0)-rs(15:0)-C, rd(23:16)←0 if C = 0 (nop if C = 1)
rd
imm7
1
1
rd(15:0)←rd(15:0)-imm7(zero extended)-C, rd(23:16)←0
rd
rs
1
1
1
0
0
0
rd(15:0)-rs(15:0)
1
1
rd
0
0
0
0
rs
rd(15:0)-rs(15:0) if C = 1 (nop if C = 0)
1
1
rd
0
1
0
0
rs
rd(15:0)-rs(15:0) if C = 0 (nop if C = 1)
0
0
rd
sign7
rd(15:0)-sign7(sign extended)
Function
S1C17 Core Instruction Set
Flags
Cycle
EXT
D
IL
IE
C
V
Z
N
1
*1
1
*1
1
*1
1
*3
*2
1
*2
1
*2
1
*2
1
*4
1
*4
1
*1
1
*1
1
*1
1
*3
1
*1
1
*1
1
*1
1
*3
1
*2
1
*2
1
1
*2
1
*2
1
*4
1
*4
1
*1
1
*1
*1
1
*3
1
*1
1
*1
1
*1
1
*3
1

Advertisement

Table of Contents
loading

Table of Contents