La pila (stack) está localizada efectivamente en la SRAM (RAM estática) de
datos y consecuentemente el tamaño de la pila está limitado solo por el tamaño
total de la SRAM (RAM estática) y su uso.
Todos los programas a usarse deben inicializar en el SP (Stack Pointer) en la
rutina del Reset (antes de que sea ejecutada una interrupción o una subrutina).
El puntero de pila (Stack pointer SP) es la lectura/escritura accesible en el
espacio de E/S. La RAM estática de datos puede ser fácilmente penetrada a
través de los cinco diferentes modos de direccionamiento soportados en la
arquitectura de AVR.
El espacio de memoria en la arquitectura de los mapas de memoria de los AVR
son todos lineales y regulares. Un módulo de interrupción flexible tiene sus
registros de control en los espacios de E/S con una Habilitación de Interrupción
Global en el Registro de Estado.
Todas las interrupciones tienen separado un vector de interrupciones en la tabla
del vector de interrupciones. Las interrupciones tienen prioridad de
conformidad con su vector de interrupciones. La dirección más baja del vector
de interrupciones tiene alta prioridad.
El espacio de memoria de E/S contiene 64 direcciones para las funciones
periféricas de la CPU, el Registro de Control SPI y otras funciones de Entrada y
Salida. La memoria de Entrada y Salida puede ser accedida directamente o
como localidades de espacio de datos siguiendo estos Archivos de Registro:0x20
- 0x5F. En suma, el ATmega164P/324P/644P tiene espacios extendidos de
entrada y salida desde la dirección 0x60 - 0xFF en la SRAM donde solo las
instrucciones ST/STS/STD y LD/LDS/LDD pueden ser usadas.
6.3 Registro de Estado
El registro de estado contiene información acerca de los resultados de las
instrucciones aritméticas más recientes ejecutadas.
Está información puede ser usada para alterar el flujo del programa en el
funcionamiento de operaciones condicionales. Note que el Registro de Estado
es actualizado después de todas las operaciones de la ALU, como
especificaciones en el Set de Instrucciones de Referencia. En algunos casos esto
retira la necesidad de usar comparación de instrucciones dedicadas, resultando
un código más rápido y compacto.
El Registro de estado no es almacenado automáticamente cuando entra una
rutina de interrupción y se restituye cuando regresa de una interrupción.