guia5MCP_2

download guia5MCP_2

of 9

Transcript of guia5MCP_2

Microprocesadores. Gua 5

1

Facultad: Ingeniera. Escuela: Electrnica. Asignatura: Microprocesadores. Lugar de ejecucin: Microprocesadores (Edificio 3, 2da planta).

INSTRUCCIONES DE CONTROL DE FLUJO Y USOS DE LA PILA.Objetivos especficos 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 resolucin de problemas simples como la realizacin de un lazo repetitivo y la comparacin entre dos datos. Mostrar la manera de guardar y extraer informacin de la PILA. Usar la PILA como un dispositivo de almacenamiento temporal de datos. Analizar la relacin que hay entre la PILA y el registro puntero de pila SP.

Materiales y equipo 1 Computadora con el programa EMU8086.

Procedimiento1) Ejecute el programa EMU8086. 2) Analice el PRIMER PROGRAMA, ayudado del flujo-grama y los comentarios que explican su funcionamiento. 3) Digite y emule el programa. Antes de ejecutarlo copie, lnea a lnea, el programa desensamblado en la columna respectiva as como se muestra en el ejemplo. Cules son las direcciones de las etiquetas INICIO y BUCLE? ____________________________________________________________________________________

2

Microprocesadores. Gua 5

PRIMER PROGRAMA Cdigo Fuente Programa desensamblado

.model small .stack .data mem db 10 DUP ('x') ;Inicializa 10 ;espacios de ;memoria con ;caracter 78h .code inicio: mov ax, @DATA mov ds, ax mov al,0FFh ;Dato mov bx,000Ah;Contador bucle: mov mem[bx],al ;copia dato ;en mem dec bx ;Decrementa BX jnz BUCLE ;Repite si la ;bandera Z= 0

. . . . . . . . MOV AX,00720H MOV DS,AX MOV AL,0FFH

mov ax,4C00h int 21h end 4) Localice la ubicacin (direcciones) de la cadena mem. Anote las direcciones y su contenido en la Tabla 1. 5) Ejecute paso a paso monitoreando los cambios que se dan en mem. Al final anote el contenido final en Tabla 1. Momento Direccin Antes Despus DIRECCIONES de mem

Tabla 1

Microprocesadores. Gua 5

3

6) Ejecute nuevamente el programa, contando las veces que se ejecuta la instruccin mov mem[bx], al y monitoreando el registro de banderas, sobre todo antes y despus de la operacin de decremento Cuntas veces se realiz la instruccin MOV? ______ Qu caus el rompimiento del lazo de repeticin? _______________________ 7) Modifique el cdigo de manera que los cambios solo afecten a los elementos de la cadena mem. Cuando lo logre notifquelo a su docente de laboratorio. 8) Emule el SEGUNDO PROGRAMAtomando nota del contenido inicial de las cadenas fuente y destino y el intervalo de direcciones donde estn almacenadas. ____________________________________________________________________________________ ____________________________________________________________________________________ 9) Ejecute paso a paso observando las modificaciones en las cadenas y las banderas. No pierda de vista el registro contador CX. 10) Anote el contenido final de la cadena destino. ____________________________________________________________________________________ ____________________________________________________________________________________ 11) Ejecute nuevamente el programa y cuente las veces que se almacenan datos en la cadena destino _______ Cul es la instruccin que hace el salto condicional? _________ Qu caus el rompimiento del lazo de repeticin? _______________________ SEGUNDO PROGRAMA Cdigo Fuente .model small .stack .data fuente db 48,49,50,51,52,53,54,55,56,57 destino db 10 DUP (4Dh) ;destino 4Dh = 'M' .code inicio: mov ax, @DATA mov ds, ax mov cx,10 ;Contador

4

Microprocesadores. Gua 5

INICIOCX = 0010 SI = SI XOR SI

xor si,si ;ndice BUCLE: mov al,fuente[si] mov [destino+si],al inc si

;Lee ;Escribe

AL = Fuente[SI]

Destino[SI] = AL

SI = SI + 1 CX = CX - 1

loop BUCLE ;Repite si CX no es 00h ;El decremento de CX esta ;implcito en la instruccin FIN: mov ax,4C00H int 21h end

NO

CX = 00h

SI

FIN12) Ahora analice el TERCER PROGRAMA, note que emplea instrucciones que cargan y extraen datos de la PILA. 13) Digite y guarde su programa. 14) Cierre el emulador. 15) Active nuevamente el emulador. Esto se hizo para borrar la memoria del emulador y que no interfieran los resultados anteriores con el nuevo programa. 16) Cargue el tercer programa y proceda a emularlo. 17) Visualice el contenido de la PILA (STACK) dando clic en el botn stack , le aparecer una ventana como la mostrada en la Figura 5.1 (el simbolo > indica cual es exactamente la localidad que se esta apuntando) Coincide la direccin indicada en la PILA con la combinacin Segmento-Desplazamiento de SS:SP? ______

Microprocesadores. Gua 5

5

Figura 5.1 18) vea tambin el estado de las banderas. 19) Ejecute las primeras cuatro instrucciones. 20) Ejecute la quinta instruccin qu cambios observ en los registros y la PILA? ____________________________________________________________________________________ 21) Ejecute la sexta instruccin qu cambios observ? ____________________________________________________________________________________ 22) Las tres instrucciones siguientes realizarn una operacin aritmtica Cul ser el resultado de la operacin? ______________ Cul ser el estado de las banderas al ejecutarse la operacin? ____________ En qu direccin se almacena el resultado? ________ 23) Ejecute la siguiente instruccin (pushf) Qu dato se almacen en la PILA?_______ Cambi SP? ______ 24) Ejecute hasta antes de hacer la comparacin Cul ser el estado de las banderas? __________________________ 25) Verifique su hiptesis realizando la instruccin.

6

Microprocesadores. Gua 5

TERCER PROGRAMA

Cdigo Fuente.model small .stack .data dato1 db 0FFh, 0FFh dato2 dB 0FFh, 0FFh resul db 00, 00, 00 .code inicio: mov ax, @DATA mov ds, ax xor si,si ;Inicializa registro clc ;C = 0 ;Inicializa banderas pushf ;guarda banderas en la PILA BUCLE: popf ;saca banderas de la PILA mov al,dato1[si] ;carga dato en AL adc al,dato2[si] ;suma al mas dato2 mov resul[si],al ;guarda en resultado pushf inc si ;incrementa SI cmp si, 02 jc BUCLE ;salte si C = 1 popf ;saca banderas de la PILA mov al,0 ;Borra AL adc al,0 ;Carga el acarreo en AL mov resul[si],al ;ltimo byte del resultado mov ax,4C00h int 21h end 26) Antes de ejecutar JC Se dar el salto o no? __________

Microprocesadores. Gua 5

7

27) Verifique su hiptesis realizando la instruccin. Se almacenaron datos en la PILA al ejecutar el salto? _______ 28) Ahora se repetir el bloque aritmtico. Responda nuevamente a las preguntas del punto 22, para la situacin actual ____________________________________________________________________________________ ____________________________________________________________________________________ 29) Compruebe su prediccin. 30) Ejecute la instruccin PUSHF qu dato envo a la PILA? _________ 31) El siguiente bloque involucra al salto condicional otra vez saltar de nuevo? Por qu? ____________________________________________________________________________________ ____________________________________________________________________________________ 32) Comprubelo. 33) Contine el proceso hasta el final Cul es el resultado de la operacin? ________________ Qu proceso realiza el programa? _____________________

Anlisis de Resultadosa) Primer programa. 1. 2. 3. 4. Cuntos datos contiene la cadena Mem? Qu indica la directiva DUP? Dnde se defini el nmero de veces que se ejecutara el lazo? Si en el cdigo inicial se cambia la segunda instruccin (mov bx,000Ah) para cargar un 0000h se ejecutar el salto o no?

b) Segundo programa. 1. Cul es la condicin que se evala para realizar el salto o no? 2. Si se cambia el dato inicial de CX por 00h qu ocurrira? c) Tercer programa. 1. Qu funcin cumple la instruccin CLC? 2. Qu informacin se gurda en la PILA al ejecutar PUSHF?

8

Microprocesadores. Gua 5

3. Qu relacin hay entre los datos que se al maceran en la PILA y el estado de las banderas, durante la ejecucin del programa? 4. Por qu es importante para el proceso del programa almacenar datos en la PILA? 5. Qu relacin entre el dato en SP y las instrucciones PUSHF y POPF? 6. Qu ocurrira si las instrucciones PUSHF y POPF del programa se cambian por PUSH y POP respectivamente? 7. Cmo se relacionan los datos que se almacenan en la PILA y el estado de las banderas? Explique por lo menos un ejemplo que observo en su programa. 8. Al realizar un salto se almacena o extrae informacin de la PILA?

Investigacin Complementaria Modifique el tercer programa para funcionar con LOOP en lugar de JC Usando las capacidades del 8086 escriba un programa que realice la misma funcin del tercer programa, pero sin saltos.

Bibliografa Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486. Arquitectura, programacin e interfaces, tercera edicin Prentice Hall, Mxico DF, 1997. Biblioteca UDB 001.6404 B847 1997 Puede consultar el material en lnea del EMU8086 sobre los temas de esta actividad. Se recomiendan:Program flow control http://www.emu8086.com/assembly_language_tutorial_assembler_reference/asm_tutorial_07.html

Microprocesadores. Gua 5 Hoja de cotejo:

9

5

Gua 5: INSTRUCCIONES DE CONTROL DE FLUJO Y USOS DE LA PILA.Alumno: Docente: Puesto No: GL: Fecha:

EVALUACION %CONOCIMIENTO

1-4 Conocimiento deficiente de los siguientes fundamentos tericos: -Banderas que provocan los saltos de las instrucciones de control de flujo y uso de la pila. -Relacin que hay entre la pila y el registro SP.

5-7 Conocimiento y explicacin incompleta de los fundamentos tericos.

8-10 Conocimiento completo y explicacin clara de los fundamentos tericos.

Nota

35

APLICACIN DEL CONOCIMIENTO

60

Cumple slo con uno o ninguno de los siguientes criterios: -Predice si el programa ejecutar o no un salto segn las condicin de las banderas e instrucciones. -Aplica las instrucciones de control de flujo en la resolucin de problemas simples. Aplica las instrucciones de uso de la pila en la resolucin de problemas simples.

Cumple slo con dos de los criterios.

Cumple con los tres criterios.

ACTITUD

5

-Es ordenado pero no hace uso adecuado de los recursos.

-Hace uso adecuado de los recursos de manera segura, pero es desordenado.

-Hace un manejo responsable y adecuado de los recursos de acuerdo a pautas de seguridad e higiene.

TOTAL

100