APPENDIX D INSTRUCTION SET LIST
643
User’s Manual U15195EJ4V1UD
(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 RR
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 RR GR[reg2] ← GR[reg1] 1 1 1
imm5, reg2 r r r r r 0 1 0 0 0 0 i i i ii GR[reg2] ← sign-extend (imm5) 1 1 1
0 0 0 0 0 1 1 0 0 0 1 R R R RR GR[reg1] ← imm32 2 2 2
i i i i i i i i i i i i i i ii
MOV
imm32, reg1
i i i i i i i i i i i i i i ii
r r r r r 1 1 0 0 0 1 R R R RR
MOVEA imm16, reg1,
reg2 i i i i i i i i i i i i i i ii
GR[reg2] ← GR[reg1] + sign-extend (imm16) 1 1 1
r r r r r 1 1 0 0 1 0 R R R RR
MOVHI imm16, reg1,
reg2 i i i i i i i i i i i i i i ii
GR[reg2] ← GR[reg1] + (imm16 || 016) 1 1 1
r r r r r 1 1 1 1 1 1 R R R RR
reg1, reg2,
reg3 w w w w w 0 1 0 0 0 1 0 0 0 00
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 ii
MULNote 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 RR 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 ii 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 RR
MULHI imm16, reg1,
reg2 i i i i i i i i i i i i i i ii
GR[reg2] ← GR[reg1] Note 6 × imm16 1 1 2
r r r r r 1 1 1 1 1 1 R R R RR
reg1, reg2,
reg3 w w w w w 0 1 0 0 0 1 0 0 0 10
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 ii
MULUNote 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 00 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 RR GR[reg2] ← NOT (GR[reg1]) 1 1 1 0 × ×
0 1 b b b 1 1 1 1 1 0 R R R RR
bit#3,
disp16[reg1] d d d d d d d d d d d d d d dd
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 RR
NOT1
reg2, [reg1]
0 0 0 0 0 0 0 0 1 1 1 0 0 0 10
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 RR 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 RR
ORI imm16, reg1,
reg2 i i i i i i i i i i i i i i ii
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 iL
list12, imm5
L L L L L L L L L L L 0 0 0 01
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 iL
PREPARE
list12, imm5,
sp/immNote15 L L L L L L L L L L L f f 0 11
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