11
1477K–AVR–08/10
ATtiny26(L)
Stack Pointer – SP The ATtiny26(L) Stack Pointer is implemented as an 8-bit register in the I/O space location $3D
($5D). As the ATtiny26(L) data memory has 224 ($E0) locations, eight bits are used.
The Stack Pointer points to the data SRAM stack area where the Subroutine and Interrupt
Stacks are located. This Stack space in the data SRAM must be defined by the program before
any subroutine calls are executed or interrupts are enabled. The Stack Pointer must be set to
point above $60. The Stack Pointer is decremented by one when data is pushed onto the Stack
with the PUSH instruction, and it is decremented by two when an address is pushed onto the
Stack with subroutine calls and interrupts. The Stack Pointer is incremented by one when data is
popped from the Stack with the POP instruction, and it is incremented by two when an address
is popped from the Stack with return from subroutine RET or return from interrupt RETI.
Program and Data
Addressing Modes
The ATtiny26(L) AVR Enhanced RISC microcontroller supports powerful and efficient address-
ing modes for access to the Flash program memory, SRAM, Register File, and I/O Data
memory. This section describes the different addressing modes supported by the AVR architec-
ture. In the figures, OP means the operation code part of the instruction word. To simplify, not all
figures show the exact location of the addressing bits.
Register Direct, Single
Register Rd
Figure 5. Direct Single Register Addressing
The operand is contained in register d (Rd).
Register Direct, Two
Registers Rd and Rr
Figure 6. Direct Register Addressing, Two Registers
Bit
765
432
1
0
$3D ($5D)
SP7
SP6
SP5
SP4
SP3
SP2
SP1
SP0
SP
Read/Write
R/W
Initial Value
0