Registro de pila
# Registro de pila

Un registro de pila es un registro de una CPU de computadora cuyo propósito es mantener la pista de la posición actual de la pila de llamadas. En una máquina de arquitectura basada en acumulador, este puede ser un registro dedicado como el puntero de pila (SP del inglés stack pointer) de una máquina Intel x86. En una máquina de registro general, puede ser un registro reservado por convención, como el de las máquinas PDP-11 o RISC. Algunos diseños como el Data General Eclipse no tenían ningún registro dedicado para el puntero de pila, pero usaron una dirección de memoria de hardware reservada para esta función.

Antes de finales de los años 1960, las máquinas como el PDP-8 y el HP 2100 no tuvieron compiladores que soportaran la recursión. Sus instrucciones de subrutinas, típicamente guardarían la localización actual de la dirección del salto, y después fijarían el contador de programa a la dirección siguiente. Mientras que esto era más simple que mantener una pila, ya que solamente hay una localización de retorno por sección de código de subrutina, de esta manera no podía haber recursión sin un esfuerzo considerable por parte del programador.

A diferencia de una máquina de registro, una máquina de pila tiene dos o más pilas. Una máquina de dos pilas (similar a la usada en la implementación del lenguaje Forth), tiene un pila de llamadas, que mantiene información sobre las llamadas a subrutinas en ejecución (que no han retornado) entre otras cosas, y el otro es un pila de parámetros, que mantiene información sobre los parámetros o datos con los que trabajan las subrutinas.

