
MB90220 Series
98
Table 21
Branch 2 Instructions [20 Instructions]
For an explanation of “(b)”, “(c)” and “(d)”, refer to Table 5, “Correction Values for Number of Cycles Used to Calculate
Number of Actual Cycles.”
*1: 4 when branching, 3 when not branching
*2: 5 when branching, 4 when not branching
*3: 5 + (a) when branching, 4 + (a) when not branching
*4: 6 + (a) when branching, 5 + (a) when not branching
*5: 3
× (b) + 2 × (c) when an interrupt request is generated, 6 × (c) when returning from the interrupt.
*6: High-speed interrupt return instruction. When an interrupt request is detected during this instruction, the
instruction branches to the interrupt vector without performing stack operations when the interrupt is generated.
*7: Return from stack (word)
*8: Return from stack (long word)
Mnemonic
#
cycles
B
Operation
LH AH
IS
T
N
Z
V
C RMW
CBNE
A, #imm8, rel
CWBNE A, #imm16, rel
CBNE ear, #imm8, rel
CBNE eam, #imm8, rel
CWBNE ear, #imm16, rel
CWBNE eam, #imm16, rel
DBNZ
ear, rel
DBNZ
eam, rel
DWBNZ ear, rel
DWBNZ eam, rel
INT
#vct8
INT
addr16
INTP
addr24
INT9
RETI
RETIQ *6
LINK
#imm8
UNLINK
RET *7
RETP *8
3
4
4+
5
5+
3
3+
3
3+
2
3
4
1
2
1
*1
*3
*1
*3
*2
*4
*2
*4
14
12
13
14
9
11
6
5
4
5
0
(b)
0
(c)
0
2
× (b)
0
2
× (c)
8
× (c)
6
× (c)
6
× (c)
8
× (c)
6
× (c)
*5
(c)
(d)
Branch when byte (A)
≠ imm8
Branch when byte (A)
≠ imm16
Branch when byte (ear)
≠ imm8
Branch when byte (eam)
≠ imm8
Branch when word (ear)
≠ imm16
Branch when word (eam)
≠imm16
Branch when byte (ear) =
(ear) – 1, and (ear)
≠ 0
Branch when byte (ear) =
(eam) – 1, and (eam)
≠ 0
Branch when word (ear) =
(ear) – 1, and (ear)
≠ 0
Branch when word (eam) =
(eam) – 1, and (eam)
≠ 0
Software interrupt
Return from interrupt
At constant entry, save old
frame pointer to stack, set new
frame pointer, and allocate
local pointer area
At constant entry, retrieve old
frame pointer from stack.
Return from subroutine
–
R
*
–
S
*
–
*
–
*
–
*
–
*
–
*
–
*
–
*
–
*
–
*
–
*
–
*
–