Rev. 6.00, 08/04, page 95 of 628
3.4
Application Notes
3.4.1
Notes on Stack Area Use
When word data is accessed in the LSI, the least significant bit of the address is regarded as 0.
Access to the stack always takes place in word size, so the stack pointer (SP: R7) should never
indicate an odd address. Use PUSH Rn (MOV.W Rn, @–SP) or POP Rn (MOV.W @SP+, Rn) to
save or restore register values.
Setting an odd address in SP may cause a program to crash. An example is shown in figure 3.6.
PC
PC
R1L
PC
SP
SP
SP
H'FEFC
H'FEFD
H'FEFF
→
→
→
H
L
L
MOV. B R1L, @
−
R7
SP set to H'FEFF
Stack accessed beyond SP
BSR instruction
Contents of PC are lost
H
[Legend]
PC
H
:
PC
L
:
R1L:
SP:
Upper byte of program counter
Lower byte of program counter
General register R1L
Stack pointer
Figure 3.6 Operation when Odd Address is Set in SP
When CCR contents are saved to the stack during interrupt exception handling or restored when
RTE is executed, this also takes place in word size. Both the upper and lower bytes of word data
are saved to the stack; on return, the even address contents are restored to CCR while the odd
address contents are ignored.
Summary of Contents for H8/38024 Series
Page 18: ...Rev 6 00 08 04 page xviii of xxx...
Page 30: ...Rev 6 00 08 04 page xxx of xxx...
Page 130: ...Rev 6 00 08 04 page 100 of 628...
Page 216: ...Rev 6 00 08 04 page 186 of 628...
Page 416: ...Rev 6 00 08 04 page 386 of 628...
Page 432: ...Rev 6 00 08 04 page 402 of 628...
Page 468: ...Rev 6 00 08 04 page 438 of 628...
Page 661: ...H8 38024 H8 38024S H8 38024F ZTAT H8 38124 Group Hardware Manual...