Rev. 3.0, 10/02, page 73 of 686
4.8
Notes on Use of the Stack
When accessing word data or longword data, this LSI 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.4 shows an example of what
happens when the SP value is odd.
SP
CCR :
PC :
R1L :
SP :
Condition code register
Program counter
General register R1L
Stack pointer
CCR
SP
SP
R1L
H'FFFEFA
H'FFFEFB
H'FFFEFC
H'FFFEFD
H'FFFEFE
H'FFFEFF
PC
PC
TRAP instruction executed
SP set to H'FFFEFF
Data saved above SP
MOV.B R1L, @-ER7 executed
Contents of CCR lost
Address
Legend
Note: This diagram illustrates an example in which the interrupt control mode is 0, in advanced mode.
Figure 4.4 Operation when SP Value is Odd
Summary of Contents for H8S/2215 Series
Page 4: ...Rev 3 0 10 02 page iv of lviii ...
Page 6: ...Rev 3 0 10 02 page vi of lviii ...
Page 28: ...Rev 3 0 10 02 page xxviii of lviii ...
Page 122: ...Rev 3 0 10 02 page 64 of 686 ...
Page 132: ...Rev 3 0 10 02 page 74 of 686 ...
Page 156: ...Rev 3 0 10 02 page 98 of 686 ...
Page 198: ...Rev 3 0 10 02 page 140 of 686 ...
Page 320: ...Rev 3 0 10 02 page 262 of 686 ...
Page 384: ...Rev 3 0 10 02 page 326 of 686 ...
Page 474: ...Rev 3 0 10 02 page 416 of 686 ...
Page 608: ...Rev 3 0 10 02 page 550 of 686 ...
Page 614: ...Rev 3 0 10 02 page 556 of 686 ...
Page 650: ...Rev 3 0 10 02 page 592 of 686 ...
Page 652: ...Rev 3 0 10 02 page 594 of 686 ...
Page 680: ...Rev 3 0 10 02 page 622 of 686 ...
Page 732: ...Rev 3 0 10 02 page 674 of 686 ...
Page 740: ...Rev 3 0 10 02 page 682 of 686 ...