Datasheet

Section 4 Exception Handling
Rev. 4.00 Jun 06, 2006 page 100 of 1004
REJ09B0301-0400
4.6 Notes on Use of the Stack
When accessing word data or longword data, the H8S/2138 Group or H8S/2134 Group chip
assumes that the lowest address bit is 0. The stack should always be accessed by word transfer
instruction or 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)
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.
SP
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.
SP
SP
CCR
PC
R1L
PC
H'FFEFFA
H'FFEFFB
H'FFEFFC
H'FFEFFD
H'FFEFFF
MOV.B R1L, @–ER7
SP set to H'FFFEFF
TRAP instruction executed
Data saved above SP Contents of CCR lost
Figure 4.6 Operation When SP Value Is Odd