PILAS

2
PILAS Una pila típica es un área de la memoria de los computadores con un origen fijo y un tamaño variable. Al principio, el tamaño de la pila es cero. Un puntero de pila, por lo general en forma de un registro de hardware, apunta a la más reciente localización en la pila; cuando la pila tiene un tamaño de cero, el puntero de pila de puntos en el origen de la pila. Las dos operaciones aplicables a todas las pilas son: Una operación apilar, en el que un elemento de datos se coloca en el lugar apuntado por el puntero de pila, y la dirección en el puntero de pila se ajusta por el tamaño de los datos de partida. Una operación desapilar: un elemento de datos en la ubicación actual apuntado por el puntero de pila es eliminado, y el puntero de pila se ajusta por el tamaño de los datos de partida. Hay muchas variaciones en el principio básico de las operaciones de pila. Cada pila tiene un lugar fijo en la memoria en la que comienza. Como los datos se añadirán a la pila, el puntero de pila es desplazado para indicar el estado actual de la pila, que se expande lejos del origen (ya sea hacia arriba o hacia abajo, dependiendo de la aplicación concreta). Por ejemplo, una pila puede comenzar en una posición de la memoria de mil, y ampliar por debajo de las direcciones, en cuyo caso, los nuevos datos se almacenan en lugares que van por debajo de 1000, y el puntero de pila se decrementa cada vez que un nuevo elemento se agrega. Cuando un tema es eliminado de la pila, el puntero de pila se incrementa. Stack pointer Un registro de pila es un registro de un 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, éste 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.

description

qqqqqqqqqqqqq

Transcript of PILAS

PILASUna pila tpica es un rea de la memoria de los computadores con un origen fijo y un tamao variable. Al principio, el tamao de la pila es cero. Un puntero de pila, por lo general en forma de un registro de hardware, apunta a la ms reciente localizacin en la pila; cuando la pila tiene un tamao de cero, el puntero de pila de puntos en el origen de la pila.Las dos operaciones aplicables a todas las pilas son: Una operacin apilar, en el que un elemento de datos se coloca en el lugar apuntado por el puntero de pila, y la direccin en el puntero de pila se ajusta por el tamao de los datos de partida. Una operacin desapilar: un elemento de datos en la ubicacin actual apuntado por el puntero de pila es eliminado, y el puntero de pila se ajusta por el tamao de los datos de partida.Hay muchas variaciones en el principio bsico de las operaciones de pila. Cada pila tiene un lugar fijo en la memoria en la que comienza. Como los datos se aadirn a la pila, el puntero de pila es desplazado para indicar el estado actual de la pila, que se expande lejos del origen (ya sea hacia arriba o hacia abajo, dependiendo de la aplicacin concreta).Por ejemplo, una pila puede comenzar en una posicin de la memoria de mil, y ampliar por debajo de las direcciones, en cuyo caso, los nuevos datos se almacenan en lugares que van por debajo de 1000, y el puntero de pila se decrementa cada vez que un nuevo elemento se agrega. Cuando un tema es eliminado de la pila, el puntero de pila se incrementa.

Stack pointerUnregistro depilaes un registro de unCPUde computadora cuyo propsito es mantener la pista de la posicin actual de lapila de llamadas. En una mquina dearquitectura basada en acumulador, ste puede ser un registro dedicado como elpuntero de pila(SP del inglsstack pointer) de una mquina Intelx86. En una mquina de registro general, puede ser un registro reservado por convencin, como el de las mquinasPDP-11oRISC. Algunos diseos como elData General Eclipseno tenan ningn registro dedicado para el puntero de pila, pero usaron una direccin de memoria de hardware reservada para esta funcin.Antes de finales de losaos 1960, las mquinas como elPDP-8y elHP 2100no tuvierancompiladoresque soportaran larecursin. Sus instrucciones de subrutinas, tpicamente guardaran la localizacin actual de la direccin del salto, y despus fijaran el contador de programa a la direccin siguiente.1Mientras que esto era ms simple que mantener unapila, ya que solamente hay una localizacin de retorno por seccin de cdigo de subrutina, de esta manera no poda haber recursin sin un esfuerzo considerable por parte del programador.Una a diferencia de unamquina de registro, unamquina de pilatiene dos o ms pilas. Una mquina de dos pilas (similar a la usada en la implementacin del lenguajeForth), tiene unpila de llamadas, que mantiene informacin sobre las llamadas a subrutinas en ejecucin (que no han retornado) entre otras cosas, y el otro es unpila de parmetros, que mantiene informacin sobre los parmetros o datos con los que trabajan las subrutinas.