2.10 Manipulacion de La Pila RESUMEN

4
INSTITUTO TECNOLÓGICO DE ACAPULCO Ingeniería en sistemas computacionales Materia: Lenguaje de Interfaz RESUMEN: Tema: 2.10 MANIPULACION DE LA PILA. Profesor: Ing. Dagoberto Urzúa Osorio Alumna: Tania Díaz Navarrete #c: 12320712 Hora: 11:00 am– 14:00 p.m. Aula: 604

description

investigación sobre manipulación de la pila subtema 2.10

Transcript of 2.10 Manipulacion de La Pila RESUMEN

INSTITUTO TECNOLGICODE ACAPULCO

Ingeniera en sistemas computacionalesMateria: Lenguaje de InterfazRESUMEN: Tema: 2.10 MANIPULACION DE LA PILA.Profesor: Ing. Dagoberto Urza OsorioAlumna: Tania Daz Navarrete #c: 12320712Hora: 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 PeterCaptulo 13: Procesamiento de datos binarios.Pgina: 22-24