3 instruction formats – Epson S1C63000 User Manual
Page 65
S1C63000 CORE CPU MANUAL
EPSON
59
CHAPTER 4: INSTRUCTION SET
4.3 Instruction Formats
All the instructions of the S1C63000 are configured with 1 word (13 bits) as follows:
I
OP Code
Examples:
LD
ADD
PUSH
%A,%B
%A,[%X]
%F
II
OP Code
Examples:
LD
ADC
BIT
%A,imm4
[%Y],%B,n4
%B,imm4
III
OP Code
Examples:
INC
CALR
INT
[addr6]
[addr6]
imm6
IV
OP Code
Examples:
LDB
CALZ
JR
%BA,imm8
imm8
sign8
V
OP Code
Examples:
CLR
SET
TST
[addr6],imm2
[addr6],imm2
[addr6],imm2
Operand
Operand
Operand
Operand
Operand
13-bit operation code
9-bit operation code + 4-bit immediate data
7-bit operation code + 6-bit immediate data
5-bit operation code + 8-bit immediate data
5-bit operation code + 2-bit immediate data + 6-bit immediate data
↓
– – –
↓
– – –
↓
– – –
↓
– – –
↓
– – –
↓
– – –
(sign16 : imm8 is upper 8-bit, sign8 is lower 8-bit)
PC
←
PC + sign16 + 1 (sign16 = 32767~-32768)
If C = 1 then PC
←
PC + sign16 + 1 (sign16 = 32767 ~ -32768)
If C = 0 then PC
←
PC + sign16 + 1 (sign16 = 32767 ~ -32768)
If Z = 1 then PC
←
PC + sign16 + 1 (sign16 = 32767 ~ -32768)
If Z = 0 then PC
←
PC + sign16 + 1 (sign16 = 32767 ~ -32768)
( [SP1 - 1
∗
4 + 3] ~ [ (SP1 - 1)
∗
4] )
←
PC + 1, SP1
←
SP1 - 1
PC
←
PC + sign16 + 1 (sign16 = 32767 ~ -32768)
Mnemonic
Operation
Flag
E I C Z
signed 16-bit PC relative addressing
LDB
%EXT,imm8
JR
sign8
LDB
%EXT,imm8
JRC
sign8
LDB
%EXT,imm8
JRNC
sign8
LDB
%EXT,imm8
JRZ
sign8
LDB
%EXT,imm8
JRNZ
sign8
LDB
%EXT,imm8
CALR
sign8
↓
– – –
↓
– – –
↓
– –
↓
– –
↓
–
↓
–
X
←
imm16 (
∗
1 is upper 8-bit,
∗
2 is lower 8-bit)
Y
←
imm16 (
∗
1 is upper 8-bit,
∗
2 is lower 8-bit)
X
←
X + imm16 (
∗
1 is upper 8-bit,
∗
2 is lower 8-bit)
Y
←
Y + imm16 (
∗
1 is upper 8-bit,
∗
2 is lower 8-bit)
X - imm16 (FFH -
∗
1 is upper 8-bit,
∗
2 is lower 8-bit)
Y - imm16 (FFH -
∗
1 is upper 8-bit,
∗
2 is lower 8-bit)
Mnemonic
Operation
Flag
E I C Z
16-bit immediate data addressing
LDB
%EXT,imm8
∗
1
LDB
%XL,imm8
∗
2
LDB
%EXT,imm8
∗
1
LDB
%YL,imm8
∗
2
LDB
%EXT,imm8
∗
1
ADD
%X,sign8
∗
2
LDB
%EXT,imm8
∗
1
ADD
%Y,sign8
∗
2
LDB
%EXT,imm8
∗
1
CMP
%X,imm8
∗
2
LDB
%EXT,imm8
∗
1
CMP
%X,imm8
∗
2
↔ ↔
↔ ↔↔↔