2 CPu
2-2
Seiko epson Corporation
S1C17153 TeChniCal Manual
(Rev. 1.0)
CPu Registers
2.2
The S1C17 Core contains eight general-purpose registers and three special registers.
R4
R5
R6
R7
R3
R2
R1
R0
bit 23
bit 0
General-purpose registers
PC
bit 23
7
6
5
4
3
2
1
0
bit 0
PSR
SP
Special registers
IL[2:0]
7
6
5
IE
4
C
3
V
2
Z
1
N
0
2.1 Registers
Figure 2.
instruction Set
2.3
The S1C17 Core instruction codes are all fixed to 16 bits in length which, combined with pipelined processing, al-
lows most important instructions to be executed in one cycle. For details, refer to the “S1C17 Family S1C17 Core
Manual.”
3.1 List of S1C17 Core Instructions
Table 2.
Classification
Mnemonic
Function
Data transfer
ld.b
%rd,%rs
General-purpose register (byte)
→
general-purpose register (sign-extended)
%rd,[%rb]
Memory (byte)
→
general-purpose register (sign-extended)
Memory address post-increment, post-decrement, and pre-decrement
functions can be used.
%rd,[%rb]+
%rd,[%rb]-
%rd,-[%rb]
%rd,[%sp+imm7]
Stack (byte)
→
general-purpose register (sign-extended)
%rd,[imm7]
Memory (byte)
→
general-purpose register (sign-extended)
[%rb],%rs
General-purpose register (byte)
→
memory
Memory address post-increment, post-decrement, and pre-decrement
functions can be used.
[%rb]+,%rs
[%rb]-,%rs
-[%rb],%rs
[%sp+imm7],%rs
General-purpose register (byte)
→
stack
[imm7],%rs
General-purpose register (byte)
→
memory
ld.ub
%rd,%rs
General-purpose register (byte)
→
general-purpose register (zero-extended)
%rd,[%rb]
Memory (byte)
→
general-purpose register (zero-extended)
Memory address post-increment, post-decrement, and pre-decrement
functions can be used.
%rd,[%rb]+
%rd,[%rb]-
%rd,-[%rb]
%rd,[%sp+imm7]
Stack (byte)
→
general-purpose register (zero-extended)
%rd,[imm7]
Memory (byte)
→
general-purpose register (zero-extended)
ld
%rd,%rs
General-purpose register (16 bits)
→
general-purpose register
%rd,sign7
Immediate
→
general-purpose register (sign-extended)
%rd,[%rb]
Memory (16 bits)
→
general-purpose register
Memory address post-increment, post-decrement, and pre-decrement
functions can be used.
%rd,[%rb]+
%rd,[%rb]-
%rd,-[%rb]
%rd,[%sp+imm7]
Stack (16 bits)
→
general-purpose register
%rd,[imm7]
Memory (16 bits)
→
general-purpose register
[%rb],%rs
General-purpose register (16 bits)
→
memory
Memory address post-increment, post-decrement, and pre-decrement
functions can be used.
[%rb]+,%rs
[%rb]-,%rs
-[%rb],%rs
[%sp+imm7],%rs
General-purpose register (16 bits)
→
stack
[imm7],%rs
General-purpose register (16 bits)
→
memory
ld.a
%rd,%rs
General-purpose register (24 bits)
→
general-purpose register
%rd,imm7
Immediate
→
general-purpose register (zero-extended)