Renesas rl78 User Manual

Page of 1004
 
RL78/G1A 
CHAPTER  28   INSTRUCTION  SET 
R01UH0305EJ0200  Rev.2.00 
 
 
848  
Jul 04, 2013 
Table 28-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. 
Clocks Flag 
Instruction 
Group 
Mnemonic Operands  Bytes 
Note 1
Note 2
Clocks 
Z AC CY
PSW 2 
− 
(SP 
− 1) ← PSW, (SP − 2) ← 00H,  
SP 
← SP−2 
 
PUSH 
rp 1 
− 
(SP 
− 1) ← rp
H
, (SP 
− 2) ← rp
L
,  
SP 
← SP – 2 
 
PSW 2 
− 
PSW 
← (SP+1), SP ← SP + 2 
R
R
POP 
rp 1 
− 
rp
←(SP), rp
← (SP+1), SP ← SP + 2 
 
SP, #word 
− 
SP 
← word 
 
SP, AX 
− 
SP 
← AX 
 
AX, SP 
− 
AX 
← SP 
 
HL, SP 
− 
HL 
← SP 
 
BC, SP 
− 
BC 
← SP 
 
MOVW 
DE, SP 
− 
DE 
← SP 
 
ADDW SP, 
#byte 
− 
SP 
← SP + byte 
 
Stack 
manipulate 
SUBW SP, 
#byte 
− 
SP 
← SP − byte 
 
AX 2 
− 
PC 
← CS, AX 
 
$addr20 2 
− 
PC 
← PC + 2 + jdisp8 
 
$!addr20 3 
− 
PC 
← PC + 3 + jdisp16 
 
!addr16 3 
− 
PC 
← 0000, addr16 
 
Unconditio
nal branch 
BR 
!!addr20 4 
− 
PC 
← addr20 
 
BC $addr20 
2/4
Note3
− 
PC 
← PC + 2 + jdisp8 if CY = 1 
 
BNC $addr20 
2/4
Note3
− 
PC 
← PC + 2 + jdisp8 if CY = 0 
 
BZ $addr20 
2/4
Note3
− 
PC 
← PC + 2 + jdisp8 if Z = 1 
 
BNZ $addr20 
2/4
Note3
− 
PC 
← PC + 2 + jdisp8 if Z = 0 
 
BH $addr20 
2/4
Note3
− 
PC 
← PC + 3 + jdisp8 if (Z∨CY)=0  
BNH $addr20 
2/4
Note3
− 
PC 
← PC + 3 + jdisp8 if (Z∨CY)=1  
saddr.bit, $addr20 
3/5
Note3
− 
PC 
← PC + 4 + jdisp8 if (saddr).bit = 1 
 
sfr.bit, $addr20 
3/5
Note3
− 
PC 
← PC + 4 + jdisp8 if sfr.bit = 1 
 
A.bit, $addr20 
3/5
Note3
− 
PC 
← PC + 3 + jdisp8 if A.bit = 1 
 
PSW.bit, $addr20 
3/5
Note3
− 
PC 
← PC + 4 + jdisp8 if PSW.bit = 1 
 
[HL].bit, $addr20 
3/5
Note3
6/7 PC 
← PC + 3 + jdisp8 if (HL).bit = 1 
 
Conditional  
branch 
BT 
ES:[HL].bit, 
$addr20 
4 4/6
Note3
7/8 PC 
← PC + 4 + jdisp8 if (ES, HL).bit = 1 
 
<R>