Sunteți pe pagina 1din 6

Guía

4 1

Instrucciones de Control de Flujo y Usos Facultad: Estudios Tecnologicos.


de la Pila Escuela: Electrónica
Asignatura: Microprocesadores
Objetivos Generales

• Analizar la forma en que se ejecutan algunas instrucciones de flujo de control y


como se relacionan con las instrucciones de comparación.
• Aplicar la sección de memoria llamada PILA como un contenedor temporal de
información.

Objetivos específicos

• Analizar el uso de algunas instrucciones de control de flujo, haciendo énfasis en las


condiciones (estado de las banderas) que se necesitan para realizar o no el salto.
• Aplicar algunas instrucciones de control de flujo en la resolución de problemas
simples como la realización de un lazo repetitivo y la comparación entre dos datos.
• Mostrar la manera de guardar y extraer información de la PILA.
• Usar la PILA como un dispositivo de almacenamiento temporal de datos.
• Analizar la relación que hay entre la PILA y el registro puntero de pila SP.

Materiales y equipos

• Guía de laboratorio
• Computadora PC con el programa EMU8086

Procedimiento

1) Ejecute el programa emulador de microprocesadores EMU8086, haciendo doble


clic en el icono del escritorio.

2) Cree un nuevo documento tipo COM

3) Analice el PRIMER PROGRAMA, que se le presente y ayudado del flujo-grama y


los comentarios que explican su funcionamiento.

4) Emule el programa. Antes de ejecutarlo copie, línea a línea, el programa


desensamblado en la columna respectiva, así como se muestra en el ejemplo.
¿Cuáles son las direcciones de las etiquetas INICIO y BUCLE?

La dirección de memoria de la etiqueta INICIO es 07100, 07102


Las direcciones de memoria de la etiqueta BUCLE es 07105, 07107, 07108
Guía
4 2

5) Localice la ubicación (direcciones) de la cadena Mem. Anote las direcciones y su


contenido en la TABLA 1.

6) Ejecute paso a paso monitoreando los cambios que se dan en Mem. Al final
anote el contenido final en TABLA 1.

Momento DIRECCIONES

Inicio 103 105 105 105 105 105 105 105 105 105 105

Fin 104 106 106 106 106 106 106 106 106 106 106

TABLA 1

7) Ejecute nuevamente el programa, contando las veces que se ejecuta la


instrucción mov Mem[bx], al y monitoreando el registro de banderas,
sobre todo antes y después de la operación de decremento
¿Cuántas veces se realizó la instrucción MOV?

10 veces

¿Qué causó el rompimiento del lazo de repetición?

La instruccion dec bx que decrementa al espacio bx y la bandera


Z se cambia a 1

8) Modifique el código de manera que los cambios solo afecten a los elementos de
la cadena. Cuando lo logre notifíquelo a su instructor.
Guía
4 3

PRIMER PROGRAMA

9) Emule el SEGUNDO PROGRAMA tomando nota del contenido inicial de las


cadenas Fuente y Destino y el intervalo de direcciones donde están
almacenadas.
- Direcciones de cadena Fuente: 07105
Contenido: AL 30
- Direcciones de cadena Destino: 0004D
Contenido: 01

10) Ejecute paso a paso observando las modificaciones en las cadenas y las
banderas. No pierda de vista el registro contador CX.
11) Anote el contenido final de la cadena Destino.

39

12) Ejecute nuevamente el programa y cuente las veces que se almacenan datos
en la cadena Destino

10 veces

¿Cuál es la instrucción que hace el salto condicional?

loop BUCLE

¿Qué causó el rompimiento del lazo de repetición?

Po r el cambio de contador a 0
Guía
4 4

SEGUNDO PROGRAMA

13) Ahora analice el TERCER PROGRAMA, note que emplea instrucciones que
cargan y extraen datos de la PILA.

14) Digite y guarde su programa.

15) Cierre el emulador.

16) Active nuevamente el emulador. Esto se hizo para borrar la memoria del
emulador y que no interfieran los resultados anteriores con el nuevo programa.

17) Cargue el tercer programa y proceda a emularlo.

18) Visualice el contenido de la PILA (STACK) y el estado de las banderas.

¿Coincide la dirección indicada en la PILA con la combinación Segmento


Desplazamiento de SS:SP? Ejecute las primeras dos instrucciones.

No coinciden

19) Ejecute las primeras dos instrucciones.

20) Ejecute la tercera instrucción ¿qué cambios observó en los registros y la PILA?

Hay desplazamiento SS:SP de 0700:FFFE a 0700:FFFC


Guía
4 5

TERCER PROGRAMA

21) Ejecute la cuarta instrucción instrucciones ¿qué cambios observó?

Se observa el cambio al estado anterior de pila (stack)

22) El bloque de instrucciones siguiente realizará una operación aritmética

¿Cuál será el resultado de la operación?


FF
¿Cuál será el estado de las banderas al ejecutarse la operación?

Cambio de banderas CF=1, ZF=0, SF=1, PF=0, AF=1

¿En qué dirección se almacena el resultado?


AL

23) Ejecute la siguiente instrucción


¿Qué dato se almacenó en la PILA?
0293
¿Cambió SP?
No cambió

24) Ejecute hasta antes de hacer la comparación


¿Cuál será el estado de las banderas?

Cambiará el estado SF

25) Verifique su hipótesis realizando la instrucción.


Cambio de banderas de SF=1 y AF=1
Guía
4 6

26) Antes de ejecutar JC ¿Se dará el salto o no?

SI

27) Verifique su hipótesis realizando la instrucción.


¿Se almacenaron datos en la PILA al ejecutar el salto?

NO

28) Ahora se repetirá el bloque aritmético. Responda nuevamente a las preguntas


del punto 22, para la situación actual

29) Compruebe su predicción.

30) Ejecute la instrucción PUSHF ¿qué dato envío a la PILA?

297

31) El siguiente bloque involucra al salto condicional otra vez ¿saltará de nuevo?
¿Por qué?
No se realizó el salto por que el contador esta en CF=0

32) Compruébelo.

33) Continúe el proceso hasta el final


¿Cuál es el resultado de la operación?
20CD

¿Qué proceso realiza el programa?


Guarda el resultado de la operación a la pila

34) Modifique el programa para que opere los siguientes datos y verifique su
funcionamiento.
a) 1050h + 3020h
b) EDCB + 2010h
c) 2590h + F550h

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