![](http://datasheet.mmic.net.cn/370000/UPD70F3116A_datasheet_16743820/UPD70F3116A_807.png)
APPENDIX C INSTRUCTION SET LIST
807
User’s Manual U14492EJ5V0UD
(2/5)
Execution Clock
Flags
Mnemonic
Operands
Opcode
Operation
i
r
I
CY
OV
S
Z
SAT
0 0 0 0 0 1 1 0 0 1 i i i i i L
L L L L L L L L L L L 0 0 0 0 0
imm5, list12
sp
←
sp + zero-extend (imm5 logically shift left by 2)
GR[reg in list12]
←
Load-memory (sp, Word)
sp
←
sp + 4
repeat 2 steps above until regs in list12 is loaded
n+1
Note 4
n+1
Note 4
n+1
Note 4
0 0 0 0 0 1 1 0 0 1 i i i i i L
L L L L L L L L L L L R R R R R
DISPOSE
imm5,
list12[reg1]
sp
←
sp + zero-extend (imm5 logically shift left by 2)
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+3
Note 4
n+3
Note 4
n+3
Note 4
r r r r r 1 1 1 1 1 1 R R R R R
w w w w w 0 1 0 1 1 0 0 0 0 0 0
DIV
reg1, reg2,
reg3
GR[reg2]
←
GR[reg2]
÷
GR[reg1]
GR[reg3]
←
GR[reg2]%GR[reg1]
35
35
35
×
×
×
reg1, reg2
r r r r r 0 0 0 0 1 0 R R R R R
GR[reg2]
←
GR[reg2]
÷
GR[reg1
]
Note 6
35
35
35
×
×
×
r r r r r 1 1 1 1 1 1 R R R R R
DIVH
reg1, reg2,
reg3
w w w w w 0 1 0 1 0 0 0 0 0 0 0
GR[reg2]
←
GR[reg2]
÷
GR[reg1
]
GR[reg3]
←
GR[reg2]%GR[reg1]
Note 6
35
35
35
×
×
×
r r r r r 1 1 1 1 1 1 R R R R R
w w w w w 0 1 0 1 0 0 0 0 0 1 0
DIVHU
reg1, reg2,
reg3
GR[reg2]
←
GR[reg2]
÷
GR[reg1
]
GR[reg3]
←
GR[reg2]%GR[reg1]
Note 6
34
34
34
×
×
×
r r r r r 1 1 1 1 1 1 R R R R R
w w w w w 0 1 0 1 1 0 0 0 0 1 0
DIVU
reg1, reg2,
reg3
GR[reg2]
←
GR[reg2]
÷
GR[reg1
]
GR[reg3]
←
GR[reg2]%GR[reg1]
34
34
34
×
×
×
1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0
EI
PSW.ID
←
0
1
1
1
0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0
HALT
Stop
1
1
1
r r r r r 1 1 1 1 1 1 0 0 0 0 0
w w w w w 0 1 1 0 1 0 0 0 1 0 0
HSW
reg2, reg3
GR[reg3]
←
GR[reg2] (15:0) || GR[reg2] (31:16)
1
1
1
×
0
×
×
r r r r r 1 1 1 1 0 d d d d d d
d d d d d d d d d d d d d d d 0
JARL
disp22, reg2
GR[reg2]
←
PC + 4
PC
←
PC + sign-extend (disp22)
3
3
3
JMP
[reg1]
0 0 0 0 0 0 0 0 0 1 1 R R R R R
PC
←
GR[reg1]
4
4
4
0 0 0 0 0 1 1 1 1 0 d d d d d d
d d d d d d d d d d d d d d d 0
JR
disp22
PC
←
PC + sign-extend (disp22)
3
3
3
r r r r r 1 1 1 0 0 0 R R R R R
d d d d d d d d d d d d d d d d
LD.B
disp16[reg1],
reg2
adr
←
GR[reg1] + sign-extend (disp16)
GR[reg2]
←
sign-extend (Load-memory (adr, Byte))
1
1
Note 11
r r r r r 1 1 1 1 0 b R R R R R
d d d d d d d d d d d d d d d 1
LD.BU
disp16[reg1],
reg2
adr
←
GR[reg1] + sign-extend (disp16)
GR[reg2]
←
zero-extend (Load-memory (adr, Byte))
1
1
Note 11
r r r r r 1 1 1 0 0 1 R R R R R
d d d d d d d d d d d d d d d 0
LD.H
disp16[reg1],
reg2
adr
←
GR[reg1] + sign-extend (disp16)
GR[reg2]
←
sign-extend (Load-memory (adr,
Halfword))
1
1
Note 11
Other than regID = PSW
1
1
1
LDSR
reg2, regID
r
0
r
0
r
0
r
0
r
0
1
0
1
0
1
0
1
0
1
0
1
1
R
0
R
0
Note 12
R
0
R
0
R
0
SR[regID]
←
GR[reg2]
regID = PSW
1
1
1
×
×
×
×
×
r r r r r 1 1 1 0 0 1 R R R R R
LD.HU
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]
←
zero-extend (Load-memory (adr,
Halfword))
1
1
Note 11
Note 7
Notes 8, 10
Note 8
Note 8
Note 5
Note 7