2 CPU
S1C17602 TECHNICAL MANUAL
EPSON
2-3
CPU
2.3 Instruction Set
The S1C17 core instruction codes are all 16-bit and fixed-length. Major instructions are executed in a single cycle
using pipeline processing. For more information on the various instructions, refer to the S1C17 Family S1C17 Core
Manual
.
Table 2.3.1: S1C17 core instruction list
Type
Mnemonic
Function
Data transfer
ld.b
%rd,%rs
General purpose register (byte) General purpose register (sign extension)
%rd,[%rb]
Memory (byte) General purpose register (sign extension)
Memory address post-increment/post-decrement
A pre-decrement function can be used
%rd,[%rb]+
%rd,[%rb]-
%rd,-[%rb]
%rd,[%sp+imm7]
Stack (byte) General purpose register (sign extension)
%rd,[imm7]
Memory (byte) General purpose register (sign extension)
[%rb],%rs
General purpose register (byte) Memory
Memory address post-increment/post-decrement
A pre-decrement function 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 extension)
%rd,[%rb]
Memory (byte) General purpose register (zero extension)
Memory address post-increment/post-decrement
A pre-decrement function can be used
%rd,[%rb]+
%rd,[%rb]-
%rd,-[%rb]
%rd,[%sp+imm7]
Stack (byte) General purpose register (zero extension)
%rd,[imm7]
Memory (byte) General purpose register (zero extension)
ld
%rd,%rs
General purpose register (16 bits) General purpose register
%rd,sign7
Immediate General purpose register (sign extension)
%rd,[%rb]
Memory (16 bits) General purpose register
Memory address post-increment/post-decrement
A pre-decrement function 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
A pre-decrement function 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 extension)
%rd,[%rb]
Memory (32 bits) General purpose register (*1)
Memory address post-increment/post-decrement
A pre-decrement function can be used
%rd,[%rb]+
%rd,[%rb]-
%rd,-[%rb]
%rd,[%sp+imm7]
Stack (32 bits) General purpose register (*1)
%rd,[imm7]
Memory (32 bits) General purpose register (*1)
[%rb],%rs
General purpose register (32 bits, zero extension) Memory (*1)
Memory address post-increment/post-decrement
A pre-decrement function can be used
[%rb]+,%rs
[%rb]-,%rs
-[%rb],%rs
[%sp+imm7],%rs
General purpose register (32 bits, zero extension) Stack (*1)
[imm7],%rs
General purpose register (32 bits, zero extension) Memory (*1)
%rd,%sp
SP General purpose register
%rd,%pc
PC General purpose register
%rd,[%sp]
Stack (32 bits) General purpose register (*1)
Stack pointer post-increment/post-decrement
A pre-decrement function can be used
%rd,[%sp]+
%rd,[%sp]-
%rd,-[%sp]