RL78/G1H CHAPTER 30 INSTRUCTION SET
R01UH0575EJ0120 Rev. 1.20 Page 854 of 920
Dec 22, 2016
Note 1. Number of CPU clocks (fCLK) when the internal RAM area, SFR area, or extended SFR area is accessed, or when no
data is accessed.
Note 2. Number of CPU clocks (f
CLK) when the code flash memory is accessed, or when the data flash memory is accessed by
an 8-bit instruction.
Note 3. This indicates the number of clocks “when condition is not met/when condition is met”.
Remark Number of clock is when program exists in the internal ROM (flash memory) area. If fetching the instruction from the
internal RAM area, the number becomes double number plus 3 clocks at a maximum.
Table 30 - 21 Operation List (17/18)
Instruction
Group
Mnemonic Operands Bytes
Clocks
Clocks
Flag
Note 1 Note 2
ZACCY
Stack
manipulate
PUSH PSW
21—
(SP - 1)
←
PSW, (SP - 2)
←
00H,
SP
←
SP - 2
rp
11—
(SP - 1)
←
rp
H
, (SP - 2)
←
rp
L
,
SP
←
SP - 2
POP PSW
23—
PSW
←
(SP + 1), SP
←
SP + 2
RRR
rp
11—
rp
L
←
(SP), rp
H
←
(SP + 1), SP
←
SP + 2
MOVW SP, #word
41—
SP
←
word
SP, AX
21—
SP
←
AX
AX, SP
21—
AX
←
SP
HL, SP
31—
HL
←
SP
BC, SP
31—
BC
←
SP
DE, SP
31—
DE
←
SP
ADDW SP, #byte
21—
SP
←
SP + byte
SUBW SP, #byte
21—
SP
←
SP - byte
Unconditional
branch
BR AX
23—
PC
←
CS, AX
$addr20
23—
PC
←
PC + 2 + jdisp8
$!addr20
33—
PC
←
PC + 3 + jdisp16
!addr16
33—
PC
←
0000, addr16
!!addr20
43—
PC
←
addr20
Conditional
branch
BC $addr20
2
2/4
Note 3
—
PC
←
PC + 2 + jdisp8 if CY = 1
BNC $addr20
2
2/4
Note 3
—
PC
←
PC + 2 + jdisp8 if CY = 0
BZ $addr20
2
2/4
Note 3
—
PC
←
PC + 2 + jdisp8 if Z = 1
BNZ $addr20
2
2/4
Note 3
—
PC
←
PC + 2 + jdisp8 if Z = 0
BH $addr20
3
2/4
Note 3
—
PC
←
PC + 3 + jdisp8 if (Z
∨
CY) = 0
BNH $addr20
3
2/4
Note 3
—
PC
←
PC + 3 + jdisp8 if (Z
∨
CY) = 1
BT saddr.bit, $addr20
4
3/5
Note 3
—
PC
←
PC + 4 + jdisp8 if (saddr).bit = 1
sfr.bit, $addr20
4
3/5
Note 3
—
PC
←
PC + 4 + jdisp8 if sfr.bit = 1
A.bit, $addr20
3
3/5
Note 3
—
PC
←
PC + 3 + jdisp8 if A.bit = 1
PSW.bit, $addr20
4
3/5
Note 3
—
PC
←
PC + 4 + jdisp8 if PSW.bit = 1
[HL].bit, $addr20
3
3/5
Note 3
6/7
PC
←
PC + 3 + jdisp8 if (HL).bit = 1
ES:[HL].bit, $addr20
4
4/6
Note 3
7/8
PC
←
PC + 4 + jdisp8 if (ES, HL).bit = 1