APPENDIX B INSTRUCTION SET LIST
User’s Manual U14359EJ4V0UM
557
(4/6)
Execution
Clock
Flags
Mnemonic
Operand
Opcode
Operation
i
r
l
CY OV
S
Z SAT
OR
reg1, reg2
r r r r r 0 0 1 0 0 0 R R R R R
GR[reg2]
←
GR[reg2]OR GR[reg1]
1
1
1
0
×
×
ORI
imm16, reg1, reg2
r r r r r 1 1 0 1 0 0 R R R R R
i i i i i i i i i i i i i i i i
GR[reg2]
←
GR[reg1]OR zero-extend (imm16)
1
1
1
0
×
×
list12, imm5
0 0 0 0 0 1 1 1 1 0 i i i i i L
LLL LL LLL LL L0 00 01
Store-memory (sp–4, GR[reg in list12], Word)
sp
←
sp–4
repeat 1 step above until all regs in list12 is stored
sp
←
sp-zero-extend (imm5)
n+1
Note 4
n+1
Note 4
n+1
Note 4
PREPARE
list12, imm5,
sp/imm
Note 15
0 0 0 0 0 1 1 1 1 0 i i i i i L
L L L L L L L L L L L f f 0 1 1
imm16/imm32
Note 16
Store-memory (sp–4, GR[reg in list12], Word)
GR[reg in list12]
←
Load memory (sp, Word)
sp
←
sp–4
repeat 2 steps above until all regs in list12 is loaded
PC
←
GR[reg1]
n+2
Note 4
Note 17
n+2
Note 4
Note 17
n+2
Note 4
Note 17
RETI
000 00 111 11 10 00 00
000 00 001 01 00 00 00
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
reg1, reg2
r r r r r 1 1 1 1 1 1 R R R R R
0000000010100000
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
×
×
SASF
cccc, reg2
r r r r r 1 1 1 1 1 1 0 c c c c
0000001000000000
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
×
×
×
×
×
SATSUBI
imm16, reg1, reg2
r r r r r 1 1 0 0 1 1 R R R R R
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
×
×
×
×
×
SETF
cccc, reg2
r r r r r 1 1 1 1 1 1 0 c c c c
0000000000000000
If conditions are satisfied
then GR[reg2]
←
00000001H
else GR[reg2]
←
00000000H
1
1
1