
APPENDIX
LIST
OF
S
1C
17
CORE
INSTR
UCTIONS
S1C17
F
AMIL
Y
S1C17
CORE
MANU
AL
EPSON
Ap-3
Data Transfer Instructions (2)
S1C17 Core Instruction Set
Opcode
ld
ld.a
Operand
[%sp+imm7], %rs
[imm7], %rs
%rd, %rs
%rd, imm7
%rd, [%rb]
%rd, [%rb]+
%rd, [%rb]-
%rd, -[%rb]
%rd, [%sp+imm7]
%rd, [imm7]
[%rb], %rs
[%rb]+, %rs
[%rb]-, %rs
-[%rb], %rs
[%sp+imm7], %rs
[imm7], %rs
%rd, %sp
%rd, %pc (
7)
%rd, [%sp]
%rd, [%sp]+
%rd, [%sp]-
%rd, -[%sp]
[%sp], %rs
[%sp]+, %rs
[%sp]-, %rs
-[%sp], %rs
%sp, %rs
%sp, imm7
Function
W[sp+imm7]
←rs(15:0)
W[imm7]
←rs(15:0)
rd(23:0)
←rs(23:0)
rd(6:0)
←imm7(6:0), rd(23:7)←0
rd(23:0)
←A[rb](23:0), ignored←A[rb](31:24)
rd(23:0)
←A[rb](23:0), ignored←A[rb](31:24), rb(23:0)←rb(23:0)+4
rd(23:0)
←A[rb](23:0), ignored←A[rb](31:24), rb(23:0)←rb(23:0)-4
rb(23:0)
←rb(23:0)-4, rd(23:0)←A[rb](23:0), ignored←A[rb](31:24)
rd(23:0)
←A[sp+imm7](23:0), ignored←A[sp+imm7](31:24)
rd(23:0)
←A[imm7](23:0), ignored←A[imm7](31:24)
A[rb](23:0)
←rs(23:0), A[rb](31:24)←0
A[rb](23:0)
←rs(23:0), A[rb](31:24)←0, rb(23:0)←rb(23:0)+4
A[rb](23:0)
←rs(23:0), A[rb](31:24)←0, rb(23:0)←rb(23:0)-4
rb(23:0)
←rb(23:0)-4, A[rb](23:0)←rs(23:0), A[rb](31:24)←0
A[sp+imm7](23:0)
←rs(23:0), A[sp+imm7](31:24)←0
A[imm7](23:0)
←rs(23:0), A[imm7](31:24)←0
rd(23:2)
←sp(23:2), rd(1:0)←0
rd(23:0)
←pc(23:0)+2
rd(23:0)
←A[sp](23:0), ignored←A[sp](31:24)
rd(23:0)
←A[sp](23:0), ignored←A[sp](31:24), sp(23:0)←sp(23:0)+4
rd(23:0)
←A[sp](23:0), ignored←A[sp](31:24), sp(23:0)←sp(23:0)-4
sp(23:0)
←sp(23:0)-4, rd(23:0)←A[sp](23:0), ignored←A[sp](31:24)
A[sp](23:0)
←rs(23:0), A[sp](31:24)←0
A[sp](23:0)
←rs(23:0), A[sp](31:24)←0, sp(23:0)←sp(23:0)+4
A[sp](23:0)
←rs(23:0), A[sp](31:24)←0, sp(23:0)←sp(23:0)-4
sp(23:0)
←sp(23:0)-4, A[sp](23:0)←rs(23:0), A[sp](31:24)←0
sp(23:2)
←rs(23:2)
sp(6:2)
←imm7(6:2), sp(23:7)←0
Cycle
2
1
1, 28
2
1
1, 28
2
1
1, 28
2
1, 28
2
1
EXT
5
4
–
3
1
6
5
4
1
6
5
4
–
1
6
1
6
–
3
D
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
IL
–
IE
–
Z
–
N
–
C
–
V
–
0 0 0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Code
MSB
LSB
Mnemonic
Flags
Remarks
1) With one EXT: base address = rb+imm13, With two EXT: base address = rb+imm24
2) With one EXT: data = sign16
3) With one EXT: data = imm20, With two EXT: data = imm24
4) With one EXT: base address = imm20, With two EXT: base address = imm24
5) With one EXT: base address = sp+imm20, With two EXT: base address = sp+imm24
6) With one EXT: base address = rb+imm13, address increment/decrement rb/sp ← rb/sp±imm13, With two EXT: base address = rb+imm24, address increment/decrement rb/sp ← rb/sp±imm24
7) The "ld.a %rd, %pc" instruction should be used as a delayed slot instruction for the jr*.d, jpr.d, or jpa.d delayed branch instruction.
8 ) With no EXT: 1 cycle, With EXT: 2 cycles
imm7
rs
rb
rs
rd
imm7
rd
rb
rd
rs
rd
rs