Registro de pila

En el artículo que hoy presentamos, vamos a adentrarnos en el fascinante mundo de Registro de pila. A lo largo de la historia, Registro de pila ha sido objeto de estudio, debate y admiración, capturando la atención de artistas, científicos, filósofos y curiosos por igual. A lo largo de las páginas que siguen, exploraremos las diferentes facetas de Registro de pila, desde su impacto en la sociedad hasta su relevancia en el ámbito científico. Además, analizaremos su influencia en la cultura popular y cómo ha moldeado nuestras percepciones y creencias a lo largo del tiempo. Prepárense para sumergirse en un viaje revelador a través de la historia y el presente de 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.

Referencias

  1. David Salomon (febrero de 1993). Assemblers and Loaders. Ellis Horwood Ltd. ISBN 0130525642. Consultado el 1 de octubre de 2008. «Most computers save the return address in either the stack, in one of the registers, or in the first word of the procedure (in which case the first executable instruction of the procedure should be stored in the second word). If the latter method is used, a return from the procedure is a jump to the memory location whose address is contained in the first word of the procedure.» 

Véase también