Title: DIRECCIONAMIENTO DE LA PILA DE MEMORIA
1DIRECCIONAMIENTO DE LA PILA DE MEMORIA
Desarrollado por Silvana Paredes Fabricio Reyes
2La pila de memoria
- Es una parte importante del sistema de memoria de
todos los microprocesadores. - Contiene los datos en forma temporal y almacena
las direcciones de retorno para los
procedimientos o subrutinas.
3La pila de memoria es del tipo LIFO
En la pila el último en entrar es el primero en
salir, para los procesadores 8086-80486.
SP
Fondo
25
86
Tope
4Instrucciones para manipular los datos
- Los datos se colocan en la pila con una
instrucción PUSH y se recuperan con una
instrucción POP. - La instrucción CALL salva la dirección de
retorno de procedimiento, y la RET recupera de
la pila la dirección de retorno del procedimiento.
5Registros para manipular la pila
- La pila de memoria se mantiene con dos registros
- El apuntador de pila (SP o ESP)
- El segmento de pila (SS).
6Qué ocurre al hacer PUSH?
- Siempre que se coloca (PUSH) una palabra en la
pila -
- Los 8 bits de orden alto se colocan en la
localidad direccionada por SP-1. - Los 8 bits de orden bajo se colocan en la
localidad direccional por SP-2. - Se decrementa en 2 el SP de modo que la siguiente
palabra se almacene en la localidad de la pila de
memoria inmediatamente disponible.
7Las instrucciones PUSH y POP. PUSH BX coloca el
contenido de registro BX en la pila direccionada
por SP SS x 10H. POP CX recupera datos de la
pila en la localidad direccionada por SP SS x
10H y coloca los datos del registro CX.
8Criterios Básicos de PUSH y POP
- Siempre que se recuperan datos (palabra) de la
pila se recuperan los 8 bits de orden bajo de la
localidad direccionada por SP. Los 8 bits de
orden alto se recuperan de la localidad
direccionada por SP1. Luego se incrementa en 2
el registro SP. - Se debe tomar en cuenta que PUSH y POP siempre
almacenan o recuperan palabras, nunca bytes en
los microprocesadores 8086-80286.
9- Los 80386 / 80486 permiten transferir permiten
transferir palabras y dobles palabras desde y
hacia la pila. Los datos se pueden colocar dentro
de la pila desde cualquier registro o registro
de segmento de 16 bits y en los 80386 / 80486 con
cualquier registro ampliado de 32 bits. - Los datos se pueden recuperar de la pila hacia
cualquier registro o registro de segmento de 16
bits, excepto CS. La razón por la que no se
puedan recuperar datos de la pila y para CS, es
que con ello sólo se cambia parte de la dirección
de la siguiente instrucción.
10Ejemplos de Direccionamiento de Memoria
11EJEMPLO DEL DIRECCIONAMIENTO DE LA PILA
12Demostración del funcionamiento de PUSH y POP
- El ejemplo mostrado a continuación permite
comprender cómo se direcciona a la pila de
memoria mediante la utilización de las
instrucciones PUSH y POP. - Este demo está desarrollado en una hoja de Excel
utilizando macros. - Para entrar haga clic en el siguiente
hipervínculo - Pila.xls
13Elementos del ejemplo
- Arreglo de registros (AX,BX,CX,DX)
- Segmento de pila
- Cuadro de instrucciones con registros
- Cuadro de instrucciones con datos inmediatos.
14Arreglo de registros
- Consta de 4 casillas en las que se ingresan
valores de tipo palabra.
15Segmento de pila
- Este gráfico representa la pila en la cual se
pueden agregar datos con la instrucción PUSH y
extraer datos con POP. - En la pila notará como trabaja el puntero SP cada
vez que se realiza una operación
16PUSH AX
Almacena una copia de AX en la pila.
0009
17POP AX
Recupera una palabra de la pila y la pone en AX.
1252
18Cuadro de instrucciones con registros
- Consta de 8 instrucciones con registros
(AX,BX,CX,DX). Al hacer clic en las instrucciones
se modifica la pila y muestra en la parte
inferior del cuadro la descripción de la
operación realizada.
Área de mensaje
19Cuadro de instrucciones con datos inmediatos
- Permite realizar operaciones PUSH y POP con datos
de tipo palabra ingresados por el usuario, y
muestra en la parte inferior la acción realizada.
Área de mensaje
20Bibliografía
- Los microprocesadores de Intel. Barry
Brey.