Datasheet
RL78/L12 CHAPTER 29 INSTRUCTION SET
R01UH0330EJ0200 Rev.2.00 852
Dec 13, 2013
Table 29-5. Operation List (16/17)
Notes 1. Number of CPU clocks (f
CLK) when the internal RAM area, SFR area, or extended SFR area is accessed, or
when no data is accessed.
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.
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.
Instruction
Group
Mnemon
ic
Operands Bytes Clocks Clocks Flag
Note 1 Note 2 Z AC CY
Stack
manipulate
PUSH PSW 2 1
−
(SP − 1) ← PSW, (SP − 2) ← 00H,
SP ← SP−2
rp 1 1
−
(SP − 1) ← rpH, (SP − 2) ← rpL,
SP ← SP – 2
POP PSW 2 3
−
PSW ← (SP+1), SP ← SP + 2 R R R
rp 1 1
−
rpL ←(SP), rpH ← (SP+1), SP ← SP + 2
MOVW SP, #word 4 1
−
SP ← word
SP, AX 2 1
−
SP ← AX
AX, SP 2 1
−
AX ← SP
HL, SP 3 1
−
HL ← SP
BC, SP 3 1
−
BC ← SP
DE, SP 3 1
−
DE ← SP
ADDW SP, #byte 2 1
−
SP ← SP + byte
SUBW SP, #byte 2 1
−
SP ← SP − byte
Un-
conditional
branch
BR AX 2 3
−
PC ← CS, AX
$addr20 2 3
−
PC ← PC + 2 + jdisp8
$!addr20 3 3
−
PC ← PC + 3 + jdisp16
!addr16 3 3
−
PC ← 0000, addr16
!!addr20 4 3
−
PC ← addr20
Conditional
branch
BC $addr20 2 2/4
Note3
−
PC ← PC + 2 + jdisp8 if CY = 1
BNC $addr20 2 2/4
Note3
−
PC ← PC + 2 + jdisp8 if CY = 0
BZ $addr20 2 2/4
Note3
−
PC ← PC + 2 + jdisp8 if Z = 1
BNZ $addr20 2 2/4
Note3
−
PC ← PC + 2 + jdisp8 if Z = 0
BH $addr20 3 2/4
Note3
−
PC ← PC + 3 + jdisp8 if (Z∨CY)=0
BNH $addr20 3 2/4
Note3
−
PC ← PC + 3 + jdisp8 if (Z∨CY)=1
BT saddr.bit, $addr20 4 3/5
Note3
−
PC ← PC + 4 + jdisp8 if (saddr).bit = 1
sfr.bit, $addr20 4 3/5
Note3
−
PC ← PC + 4 + jdisp8 if sfr.bit = 1
A.bit, $addr20 3 3/5
Note3
−
PC ← PC + 3 + jdisp8 if A.bit = 1
PSW.bit, $addr20 4 3/5
Note3
−
PC ← PC + 4 + jdisp8 if PSW.bit = 1
[HL].bit, $addr20 3 3/5
Note3
6/7 PC ← PC + 3 + jdisp8 if (HL).bit = 1
ES:[HL].bit,
$addr20
4 4/6
Note3
7/8 PC ← PC + 4 + jdisp8 if (ES, HL).bit = 1