English
Language : 

HD6413007F20 Datasheet, PDF (107/798 Pages) Renesas Technology Corp – Hardware Manual Renesas 16-Bit Single-Chip Microcomputer H8 Family/H8/300H Series
4. Exception Handling
4.6 Notes on Stack Usage
When accessing word data or longword data, the H8/3006 and H8/3007 regard the lowest address
bit as 0. The stack should always be accessed by word access or longword access, and the value of
the stack pointer (SP: ER7) should always be kept even.
Use the following instructions to save registers:
PUSH.W Rn (MOV.W Rn, @–SP)
PUSH.L ERn (MOV.L ERn, @–SP)
Use the following instructions to restore registers:
POP.W Rn
POP.L ERn
(MOV.W @SP+, Rn)
(MOV.L @SP+, ERn)
Setting SP to an odd value may lead to a malfunction. Figure 4.6 shows an example of what
happens when the SP value is odd.
CCR
SP
SP
PC
R1L
H'FFFEFA
H'FFFEFB
PC
H'FFFEFC
H'FFFEFD
SP
H'FFFEFF
TRAPA instruction executed
MOV. B R1L, @-ER7
SP set to H'FFFEFF
Data saved above SP
CCR contents lost
Legend:
CCR: Condition code register
PC: Program counter
R1L: General register R1L
SP: Stack pointer
Note: The diagram illustrates modes 3 and 4.
Figure 4.6 Operation when SP Value Is Odd
Rev.5.00 Sep. 12, 2007 Page 77 of 764
REJ09B0396-0500