Вы находитесь на странице: 1из 4

INSTITUTO TECNOLGICO

DE ACAPULCO

Ingeniera en sistemas
computacionales
Materia: Lenguaje de Interfaz
RESUMEN: Tema: 2.10
MANIPULACION DE LA PILA.
Profesor: Ing. Dagoberto Urza Osorio
Alumna: Tania Daz Navarrete #c: 12320712
Hora: 11:00 am 14:00 p.m.
Aula: 604

RESUMEN: 2.10 MANIPULACION


DE LA PILA.
DE acuerdo con (PETER, 1996) LA PILA (STACK)
Los segmentos .COM y .EXE, requieren un rea en el programa reservada como una pila
(stack). El propsito de la pila es mantener un espacio para el almacenamiento tmeporal
de direcciones y datos.
El DOS define de manera automtica la pila para un programa .COM, mientras que para
un programa .EXE se debe definir en forma explcita. Cada elemento de dato en la pila.
Cada elemento de dato en la pila es una palabra (dos bytes) El registro SS, como es
inicializado por el DOS, contiene la direccin del inicio de la pila. Inicialmente, el SP
contiene el tamao de la pila, un valor que apunta al byte que esta pasando el final de la
pila. La pila difiere de otros segmentos en su mtodo de almacenar los datos empieza en
la localidad ms alta y almacena los datos hacia abajo por la memoria.

La instruccin PUSH (entre otras) disminuye el SP en 2 hacia abajo, hacia la siguiente


palabra almacenada de la pila y coloca (o empuja, push) un valor ah. La instruccin POP
(entre otras) regresa el valor de la pila e incrementa el SO en 2 hacia arriba, hacia la
siguiente palabra almacenada. El ejemplo siguiente se muestra como meter el contenido
de los registros AX y BX a la pila y la subsecuente extraccin de ellos. Suponga que el AX
contiene 015AH, el BX contiene 03D2H y el SP contiene 28H.
1. Al comienzo la pila esta vaca y se ve as:

2. PUSH AX: Disminuye el SP en 2 (a 26H) y almacena el contenido del AX, 015AH,


en la pila. Observe que la operacin invierte la secuencia de bytes almacenados,
de modo que 015 se convierte en 501:

3. PUSH BX: Disminuye el SP en 2 ( a 24H) y almacena el contenido del BX, 03D2H,


en la pila:

4. POP BX: Regresa la palabra que se encuentra en la pila, en donde apunta el SP, y
la enva al registro BX e incrementa el SP en 2 (a 26H). El BX ahora contiene
03D2H, con los bytes correctamente invertidos:

5. POP AX: Regresa la palabra que se encuentra en la pila, en donde apunta el SP, y
la enva al registro AX e incrementa el SP en 2 (a 28H). el AX ahora contiene
015AH, con los bytes correctamente invertidos:

Las instrucciones POP son codificadas en secuencia inversa a las instrucciones PUSH.
As en el ejemplo se guardaron AX y BX, en ese orden. Adems, los valores sacados de la
pila an estn all, aunque el SP ya no apunta a ellos.
Siempre debe asegurarse que su programa coordine los valores que guardan en la pila
con los valores que saca de ella. Como este es un registro directo, un error puede causar
que un programa no funcione. Tambin, para un programa .EXE usted tiene que definir
una pila que sea suficientemente grande para contener todos los valores que pondran ser
guardados en ella.

Bibliografa:
Lenguaje ensamblador Abel Peter
Captulo 13: Procesamiento de datos binarios.
Pgina: 22-24

Вам также может понравиться