Sunteți pe pagina 1din 4

Puntero de Pila

La pila es el rea de espacio de memoria, utilizado temporalmente para guardar y recuperar datos
y/o direcciones cuando el CPU est ejecutando una subrutina programada o una interrupcin. El
puntero de pila apunta (almacena la direccin) a la prxima direccin libre de la pila y que
decrementa su valor en uno cada vez que se almacena un dato (de un byte) en ella,
incrementndolo en uno cuando se retira este valor(de un byte). En el caso que se guarda la
direccin de retorno cuando se atiende a una subrutina o una interrupcin el puntero de pila es
decrementado en 2 y luego de ejecutarse la ltima instruccin de retorno de la subrutina, el
puntero de pila es incrementado en 2.
El puntero de pila en el AVR es implementado con 2 registros de 8 bits en el espacio de memoria
E/S. El programador debe darle el valor inicial al puntero de pila en la memoria de datos SRAM por
encima de la direccin $60,

La pila es implementada en el espacio de propsito general (RAM).


Es usada para almacenamiento temporal de variables (instrucciones PUSH y
POP) o durante la llamada de subrutinas o el manejo de interrupciones.
El registro SP es el apuntador al tope de la pila. Realmente el
SP se compone de 2 registros, para la parte alta (SPH) y para la parte baja (SPL),
esto para direccionar al espacio completo de memoria.
La pila tiene un crecimiento hacia abajo, es decir, de las direcciones altas de
memoria a las direcciones bajas.
Despus de un reset, el apuntador de Pila tiene el valor de
0x0000, por lo que debe ser inicializado dentro del programa
http://www.alciro.org/alciro/microcontroladores-8051_24/stack-pila_358.htm

La pila es un tipo de estructura de datos con organizacin LIFO (Last In First Out): lo ltimo que
entra en la pila es lo primero que sale de ella.
La pila tiene una base y un tope

En la base de la pila esta el elemento mas antiguo


En el tope esta el elemento guardado mas recientemente.

Cuando hay mas de un elemento en la pila, todas las operaciones de


almacenamiento o extraccin se hacen sobre su tope

La pila de muchos microprocesadores y microcontroladores se ubca en su memora de datos.


Entonces el crecimiento de la pila es ilimitado, pues se realiza en una zona de memoria RAM.
Estos dispositivos tienen un registro para direccionar la pila : PUNTERO DE LA PILA O REGISTRO SP
(Stack Pointer).
El SP contiene siempre la direccin del tope de la pila. Las operaciones de almacenamiento o
extraccin de datos de la pila modifican el contenido del registro SP. (Por ejemplo al guardar un
dato en la pila, el valor SP se puede incrementar o decrementar).
Para que se usa la pila?
La pila se usa para lamacenar drecciones de instrucciones (para recordar) la direccon de retorno al
programa principal desde una subrutina.
Cuando se llama a una subrutina mediante una instruccon (call) el valor del contador del programa
(PC) es la direccin a la que se debe retornar al terminar la ejecucin de la subrutina- se guarda
en la pila.
Al finalizar la subrutina con una instruccin RETURN esta toma el valor situado en el tope de la
pla- es la direccin colocada por la instruccin de llamada- y lo decuelve al PC, con lo que se
produce el salto de retorno al programa desde el cual se llamo a la subrutina, en el punto
correspondiente a la instruccin que sigue al CALL.

http://books.google.com.mx/books?id=ODenKGOHMRkC&pg=PA86&dq=la+pila+microcontrolador
&hl=es-419&sa=X&ei=ELAMVP74JI62ogSmyYKoBA&ved=0CBoQ6AEwAA#v=onepage&q&f=true

S-ar putea să vă placă și