5 Instruction Set
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 description of each instruction
in the latter sections of this manual.
5.1 List of Instructions
Classification
Data transfer
ld.b
ld.ub
ld
ld.a
S1C17 CORE MANUAL
(Rev. 1.2)
Table 5.1.1 S1C17 Instructions List
Mnemonic
General-purpose register (byte) → general-purpose register (sign-extended)
%rd,%rs
Memory (byte) → general-purpose register (sign-extended)
%rd,[%rb]
Memory address post-increment, post-decrement, and pre-decrement functions
%rd,[%rb]+
can be used.
%rd,[%rb]-
%rd,-[%rb]
Stack (byte) → general-purpose register (sign-extended)
%rd,[%sp+imm7]
Memory (byte) → general-purpose register (sign-extended)
%rd,[imm7]
General-purpose register (byte) → memory
[%rb],%rs
Memory address post-increment, post-decrement, and pre-decrement functions
[%rb]+,%rs
can be used.
[%rb]-,%rs
-[%rb],%rs
General-purpose register (byte) → stack
[%sp+imm7],%rs
General-purpose register (byte) → memory
[imm7],%rs
General-purpose register (byte) → general-purpose register (zero-extended)
%rd,%rs
Memory (byte) → general-purpose register (zero-extended)
%rd,[%rb]
Memory address post-increment, post-decrement, and pre-decrement functions
%rd,[%rb]+
can be used.
%rd,[%rb]-
%rd,-[%rb]
Stack (byte) → general-purpose register (zero-extended)
%rd,[%sp+imm7]
Memory (byte) → general-purpose register (zero-extended)
%rd,[imm7]
General-purpose register (16 bits) → general-purpose register
%rd,%rs
Immediate → general-purpose register (sign-extended)
%rd,sign7
Memory (16 bits) → general-purpose register
%rd,[%rb]
Memory address post-increment, post-decrement, and pre-decrement functions
%rd,[%rb]+
can be used.
%rd,[%rb]-
%rd,-[%rb]
Stack (16 bits) → general-purpose register
%rd,[%sp+imm7]
Memory (16 bits) → general-purpose register
%rd,[imm7]
General-purpose register (16 bits) → memory
[%rb],%rs
Memory address post-increment, post-decrement, and pre-decrement functions
[%rb]+,%rs
can be used.
[%rb]-,%rs
-[%rb],%rs
General-purpose register (16 bits) → stack
[%sp+imm7],%rs
General-purpose register (16 bits) → memory
[imm7],%rs
General-purpose register (24 bits) → general-purpose register
%rd,%rs
Immediate → general-purpose register (zero-extended)
%rd,imm7
Memory (32 bits) → general-purpose register *
%rd,[%rb]
Memory address post-increment, post-decrement, and pre-decrement functions
%rd,[%rb]+
can be used.
%rd,[%rb]-
%rd,-[%rb]
Stack (32 bits) → general-purpose register *
%rd,[%sp+imm7]
Memory (32 bits) → general-purpose register *
%rd,[imm7]
General-purpose register (32 bits, zero-extended) → memory *
[%rb],%rs
Memory address post-increment, post-decrement, and pre-decrement functions
[%rb]+,%rs
can be used.
[%rb]-,%rs
-[%rb],%rs
General-purpose register (32 bits, zero-extended) → stack *
[%sp+imm7],%rs
General-purpose register (32 bits, zero-extended) → memory *
[imm7],%rs
SP → general-purpose register
%rd,%sp
PC → general-purpose register
%rd,%pc
Stack (32 bits) → general-purpose register *
%rd,[%sp]
Stack pointer post-increment, post-decrement, and pre-decrement functions can
%rd,[%sp]+
be used.
%rd,[%sp]-
%rd,-[%sp]
Seiko Epson Corporation
5 INSTRUCTION SET
Function
5-1