APPENDIX C INSTRUCTION SET LIST
680
User’s Manual U15195EJ5V0UD
(3/5)
Execution Clock
Flags
Mnemonic Operands
Opcode
Operation
i r I
CY
OV
S Z
SAT
r r r r r 1 1 1 0 0 1 R R R R R
LD.W disp16[reg1],
reg2
d d d d d d d d d d d d d d d 1
adr
←
GR[reg1] + sign-extend (disp16)
GR[reg2]
←
Load-memory (adr, Word)
1 1
Note 11
reg1, reg2
r r r r r 0 0 0 0 0 0 R R R R R
GR[reg2]
←
GR[reg1]
1
1
1
imm5, reg2
r r r r r 0 1 0 0 0 0 i i i i i
GR[reg2]
←
sign-extend (imm5)
1
1
1
0 0 0 0 0 1 1 0 0 0 1 R R R R R
GR[reg1]
←
imm32
2
2
2
i i i i i i i i i i i i i i i i
MOV
imm32, reg1
i i i i i i i i i i i i i i i i
r r r r r 1 1 0 0 0 1 R R R R R
MOVEA imm16,
reg1,
reg2
i i i i i i i i i i i i i i i i
GR[reg2]
←
GR[reg1] + sign-extend (imm16)
1
1
1
r r r r r 1 1 0 0 1 0 R R R R R
MOVHI imm16,
reg1,
reg2
i i i i i i i i i i i i i i i i
GR[reg2]
←
GR[reg1] + (imm16 || 0
16
)
1
1
1
r r r r r 1 1 1 1 1 1 R R R R R
reg1, reg2,
reg3
w w w w w 0 1 0 0 0 1 0 0 0 0 0
GR[reg3] || GR[reg2]
←
GR[reg2]
×
GR[reg1]
reg1
≠
reg2
≠
reg3, reg3
≠
r0
1 2
Note 14
2
r r r r r 1 1 1 1 1 1 i i i i i
MUL
Note 22
imm9, reg2,
reg3
w w w w w 0 1 0 0 1 I I I I 0 0
GR[reg3] || GR[reg2]
←
GR[reg2]
×
sign-extend
(imm9)
1 2
Note 14
2
reg1, reg2
r r r r r 0 0 0 1 1 1 R R R R R
GR[reg2]
←
GR[reg2]
Note 6
×
GR[reg1]
Note 6
1
1
2
MULH
imm5, reg2
r r r r r 0 1 0 1 1 1 i i i i i
GR[reg2]
←
GR[reg2]
Note 6
×
sign-extend (imm5)
1
1
2
r r r r r 1 1 0 1 1 1 R R R R R
MULHI imm16,
reg1,
reg2
i i i i i i i i i i i i i i i i
GR[reg2]
←
GR[reg1]
Note 6
×
imm16
1
1
2
r r r r r 1 1 1 1 1 1 R R R R R
reg1, reg2,
reg3
w w w w w 0 1 0 0 0 1 0 0 0 1 0
GR[reg3] || GR[reg2]
←
GR[reg2]
×
GR [reg1]
reg1
≠
reg2
≠
reg3, reg3
≠
r0
1 2
Note 14
2
r r r r r 1 1 1 1 1 1 i i i i i
MULU
Note 22
imm9, reg2,
reg3
w w w w w 0 1 0 0 1 I I I I 1 0
GR[reg3]||GR[reg2]
←
GR[reg2]
×
zero-extend
(imm9)
1 2
Note 14
2
NOP
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Passes at least 1 cycle doing nothing.
1
1
1
NOT reg1,
reg2
r r r r r 0 0 0 0 0 1 R R R R R
GR[reg2]
←
NOT (GR[reg1])
1
1
1
0
×
×
0 1 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, Z flag)
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
NOT1
reg2, [reg1]
0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0
adr
←
GR[reg1]
Z flag
←
Not (Load-memory-bit (adr, reg2))
Store-memory-bit (adr, reg2, Z flag)
3
Note 3
3
Note 3
3
Note 3
×
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
×
×
r r r r r 1 1 0 1 0 0 R R R R R
ORI imm16,
reg1,
reg2
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
×
×
0 0 0 0 0 1 1 1 1 0 i i i i i L
list12, imm5
L L L L L L L L L L L 0 0 0 0 1
Store-memory (sp-4, GR[reg in list12], Word)
sp
←
sp
−
4
repeat 1 steps above until regs in list12 is stored
sp
←
sp-zero-extend (imm5)
n+1
Note 4
n+1
Note 4
n+1
Note 4
0 0 0 0 0 1 1 1 1 0 i i i i i L
PREPARE
list12, imm5,
sp/imm
Note15
L L L L L L L L L L L f f 0 1 1
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 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
Note 8
Note 13
Note 13
Note 16
imm16/imm32