Renesas rl78 User Manual

Page of 1004
 
RL78/G1A 
 
CHAPTER  3   CPU  ARCHITECTURE 
R01UH0305EJ0200  Rev.2.00 
 
 
92  
Jul 04, 2013 
3.4.9  Stack addressing 
 
[Function] 
The stack area is indirectly addressed with the stack pointer (SP) values.  This addressing is automatically employed 
when the PUSH, POP, subroutine call, and return instructions are executed or the register is saved/restored upon 
generation of an interrupt request. 
Only the internal RAM area can be set as the stack area. 
 
[Description format] 
 
Identifier Description 
− 
PUSH PSW AX/BC/DE/HL 
POP PSW AX/BC/DE/HL 
CALL/CALLT 
RET 
BRK 
RETB  
(Interrupt request generated) 
RETI 
 
Each stack operation saves or restores data as shown in Figures 3-35 to 3-40
 
Figure 3-35.  Example of PUSH rp 
 
Higher-order byte of rp
SP
F0000H
PUSH   rp
Lower-order byte of rp
SPὼ1
SPὼ2
rp
SP
OP-code
<1>
<1>
<2>
<2>
<3>
Stack area
Memory
Stack addressing is specified <1>.
The higher-order and lower-order bytes of the pair of registers
indicated by rp <2> are stored in addresses SP – 1 and SP – 2, 
respectively.
The value of SP <3> is decreased by two (if rp is the program
status word (PSW), the value of the PSW is stored in SP – 1 and
0 is stored in SP – 2). 
Instruction code