Application Notes; Notes On Stack Area Use; Figure 3.6 Operation When Odd Address Is Set In Sp - Renesas H8/3847R Series Hardware Manual

8-bit single-chip microcomputer super low power
Table of Contents

Advertisement

Section 3 Exception Handling
3.4

Application Notes

3.4.1

Notes on Stack Area Use

When word data is accessed in the H8/3847R Group, 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.
SP→
SP set to H'FEFF
Legend:
PC
:
Upper byte of program counter
H
PC
:
Lower byte of program counter
L
R1L:
General register R1L
SP:
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.
Rev. 6.00 Aug 04, 2006 page 114 of 680
REJ09B0145-0600
SP→
BSR instruction
Stack accessed beyond SP
PC
SP→
H
PC
L
MOV. B R1L, @−R7
Contents of PC are lost
R1L
H'FEFC
PC
H'FEFD
L
H'FEFF
H

Advertisement

Table of Contents
loading

Table of Contents