Usage Note; Figure 4.3 Operation When Sp Value Is Odd - Renesas H8SX/1500 Series Hardware Manual

32-bit cisc microcomputer
Hide thumbs Also See for H8SX/1500 Series:
Table of Contents

Advertisement

Section 4 Exception Handling
4.9

Usage Note

When performing stack-manipulating access, this LSI assumes that the lowest address bit is 0. The
stack should always be accessed by a word transfer instruction or a longword transfer instruction,
and the value of the stack pointer (SP: ER7) should always be kept even. Use the following
instructions to save registers:
• PUSH.W Rn (or MOV.W Rn, @-SP)
• PUSH.L ERn (or MOV.L ERn, @-SP)
Use the following instructions to restore registers:
• POP.W Rn (or MOV.W @SP+, Rn)
• POP.L ERn (or MOV.L @SP+, ERn)
Performing stack manipulation while SP is set to an odd value leads to an address error. Figure 4.3
shows an example of operation when the SP value is odd.
SP
SP set to H'FFFEFF
[Legend]
CCR :
Condition code register
PC :
Program counter
R1L :
General register R1L
SP :
Stack pointer
Note: This diagram illustrates an example in which the interrupt control mode is 0, in advanced mode.
Rev. 3.00 Mar. 14, 2006 Page 86 of 804
REJ09B0104-0300
SP
TRAPA instruction executed
Data saved above SP
(Address error occurred)

Figure 4.3 Operation when SP Value Is Odd

CCR
SP
PC
MOV.B R1L, @-ER7 executed
Contents of CCR lost
Address
H'FFFEFA
R1L
H'FFFEFB
PC
H'FFFEFC
H'FFFEFD
H'FFFEFE
H'FFFEFF

Advertisement

Table of Contents
loading

Table of Contents