Stack o Pila
Es una estructura de datos con acceso del tipo LIFO (Last In First Out), último en entrar, primero en salir. Como similitud se puede asociar a un almacenamiento de libros formando una pila, en la que se almacenan uno sobre otro, los nuevos elementos se apilan sobre el último, y cunado se retiran se extrae el último que se ha apilado.
Este tipo de estructura de datos es fácil de desarrollar por los sistemas microprocesadores y resulta de gran utilidad para trabajar con listas de datos y es imprescindible para el trabajo interno del microprocesador en las subrutinas e interrupciones.
Algunos microprocesadores pueden tener el Stack en su interior, representando un sistema muy rápido pero de tamaño limitado, la mayoría de microprocesadores disponen el stack en la memoria externa, hecho que proporciona una gran capacidad de almacenamiento y el control de su ubicación, aunque el acceso sea más lento.
Funcionamiento de la pila
- Todo μP cuenta con una memoria de almacenamiento temporal denominada Pila.
- Es una estructura de datos de tipo secuencial (LIFO).
- Existen dos operaciones básicas posibles: apilar y desapilar.
- Solo se tiene acceso a la parte superior de la pila (último objeto apilado).
- Es necesaria para el funcionamiento de las instrucciones de llamado y vuelta de subrutinas (CALL y RET), las instrucciones PUSH y POP, entre otras.
- En algunos μP la pila esta formada por un conjunto de registros internos (Ej. PICs).
- En otros casos (Intel 80XX, Z80) la pila utiliza memoria de datos (RAM) para la pila junto a un registro específico en el μP llamado stack pointer (puntero de pila).