ATmega88PA Automotive Atmel Corporation, ATmega88PA Automotive Datasheet - Page 12

no-image

ATmega88PA Automotive

Manufacturer Part Number
ATmega88PA Automotive
Description
Manufacturer
Atmel Corporation
7.4.1
7.5
12
Stack Pointer
Atmel ATmega48PA/88PA/168PA [Preliminary]
The X-register, Y-register, and Z-register
The registers R26...R31 have some added functions to their general purpose usage. These
registers are 16-bit address pointers for indirect addressing of the data space. The three indi-
rect address registers X, Y, and Z are defined as described in
Figure 7-3.
In the different addressing modes these address registers have functions as fixed displace-
ment, automatic increment, and automatic decrement (see the instruction set reference for
details).
The Stack is mainly used for storing temporary data, for storing local variables and for storing
return addresses after interrupts and subroutine calls. Note that the Stack is implemented as
growing from higher to lower memory locations. The Stack Pointer Register always points to
the top of the Stack. The Stack Pointer points to the data SRAM Stack area where the Subrou-
tine and Interrupt Stacks are located. A Stack PUSH command will decrease the Stack
Pointer.
The Stack in the data SRAM must be defined by the program before any subroutine calls are
executed or interrupts are enabled. Initial Stack Pointer value equals the last address of the
internal SRAM and the Stack Pointer must be set to point above start of the SRAM, see
8-3 on page
See
Table 7-1.
The AVR Stack Pointer is implemented as two 8-bit registers in the I/O space. The number of
bits actually used is implementation dependent. Note that the data space in some implementa-
tions of the AVR architecture is so small that only SPL is needed. In this case, the SPH
Register will not be present.
Instruction
PUSH
CALL
ICALL
RCALL
POP
RET
RETI
X-register
Y-register
Z-register
Table 7-1
18.
Stack pointer
Decremented by 1
Decremented by 2
Incremented by 1
Incremented by 2
The X-, Y-, and Z-registers
Stack Pointer Instructions
for Stack Pointer details.
15
7
R27 (0x1B)
15
7
R29 (0x1D)
15
7
R31 (0x1F)
Description
Data is pushed onto the stack
Return address is pushed onto the stack with a subroutine call or
interrupt
Data is popped from the stack
Return address is popped from the stack with return from
subroutine or return from interrupt
XH
YH
ZH
0
0
0
7
R26 (0x1A)
7
R28 (0x1C)
7
R30 (0x1E)
Figure
XL
YL
ZL
7-3.
0
9223B–AVR–09/11
0
0
0
0
0
Table

Related parts for ATmega88PA Automotive