APPENDIX C INSTRUCTION SET LIST
681
User’s Manual U15195EJ5V0UD
(4/5)
Execution Clock
Flags
Mnemonic Operands
Opcode
Operation
i r I
CY
OV
S Z
SAT
0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
RETI
0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0
if PSW.EP = 1
then PC
←
EIPC
PSW
←
EIPSW
else if PSW.NP = 1
then PC
←
FEPC
PSW
←
FEPSW
else
PC
←
EIPC
PSW
←
EIPSW
4 4 4 R R R R R
r r r r r 1 1 1 1 1 1 R R R R R
reg1, reg2
0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0
GR[reg2]
←
GR[reg2] arithmetically shift right by
GR[reg1]
1 1 1
×
0
×
×
SAR
imm5, reg2
r r r r r 0 1 0 1 0 1 i i i i i
GR[reg2]
←
GR[reg2] arithmetically shift right by zero-
extend (imm5)
1 1 1
×
0
×
×
r r r r r 1 1 1 1 1 1 0 c c c c
SASF cccc,
reg2
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
if conditions are satisfied
then GR[reg2]
←
(GR[reg2] Logically shift left by 1)
OR 00000001H
else GR[reg2]
←
(GR[reg2] Logically shift left by 1)
OR 00000000H
1
1
1
reg1, reg2
r r r r r 0 0 0 1 1 0 R R R R R
GR[reg2]
←
saturated (GR[reg2] + GR[reg1])
1
1
1
×
×
×
×
×
SATADD
imm5, reg2
r r r r r 0 1 0 0 0 1 i i i i i
GR[reg2]
←
saturated (GR[reg2] sign-extend (imm5))
1
1
1
×
×
×
×
×
SATSUB reg1,
reg2
r r r r r 0 0 0 1 0 1 R R R R R
GR[reg2]
←
saturated (GR[reg2]
−
GR[reg1])
1
1
1
×
×
×
×
×
r r r r r 1 1 0 0 1 1 R R R R R
SATSUBI imm16,
reg1,
reg2
i i i i i i i i i i i i i i i i
GR[reg2]
←
saturated (GR[reg1]
−
sign-extend
(imm16)
1 1 1
×
×
×
×
×
SATSUBR reg1,
reg2
r r r r r 0 0 0 1 0 0 R R R R R
GR[reg2]
←
saturated (GR[reg1]
−
GR[reg2])
1
1
1
×
×
×
×
×
r r r r r 1 1 1 1 1 1 0 c c c c
SETF cccc,
reg2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
if conditions are satisfied
then GR[reg2]
←
00000001H
else GR[reg2]
←
00000000H
1
1
1
0 0 b b b 1 1 1 1 1 0 R R R R R
bit#3, disp16
[reg1]
d d d d d d d d d d d d d d d d
adr
←
GR[reg1] + sign-extend (disp16)
Z flag
←
Not (Load-memory-bit (adr, bit#3))
Store-memory-bit (adr, bit#3, 1)
3
Note 3
3
Note 3
3
Note 3
×
r r r r r 1 1 1 1 1 1 R R R R R
SET1
reg2, [reg1]
0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0
adr
←
GR[reg1]
Z flag
←
Not (Load-memory-bit (adr, reg2))
Store-memory-bit (adr, reg2, 1)
3
Note 3
3
Note 3
3
Note 3
×
r r r r r 1 1 1 1 1 1 R R R R R
reg1, reg2
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
GR[reg2]
←
GR[reg2] logically shift left by GR[reg1]
1
1
1
×
0
×
×
r r r r r 0 1 0 1 1 0 i i i i i
SHL
imm5, reg2
GR[reg2]
←
GR[reg2] logically shift left
by zero-extend (imm5)
1 1 1
×
0
×
×
r r r r r 1 1 1 1 1 1 R R R R R
reg1, reg2
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
GR[reg2]
←
GR[reg2] logically shift right by GR[reg1]
1
1
1
×
0
×
×
SHR
imm5, reg2
r r r r r 0 1 0 1 0 0 i i i i i
GR[reg2]
←
GR[reg2] logically shift right
by zero-extend (imm5)
1 1 1
×
0
×
×
SLD.B
disp7[ep],
reg2
r r r r r 0 1 1 0 d d d d d d d
adr
←
ep + zero-extend (disp7)
GR[reg2]
←
sign-extend (Load-memory (adr, Byte))
1
1
Note 9
SLD.BU
disp4[ep],
reg2
r r r r r 0 0 0 0 1 1 0 d d d d
adr
←
ep + zero-extend (disp4)
GR[reg2]
←
zero-extend (Load-memory (adr, Byte))
1
1
Note 9
SLD.H
disp8[ep],
reg2
r r r r r 1 0 0 0 d d d d d d d
adr
←
ep + zero-extend (disp8)
GR[reg2]
←
sign-extend (Load-memory (adr,
Halfword))
1
1
Note 9
Note 18
Note 19