Universidad Católica De Santa María
FACULTAD DE CIENCIAS E INGENERÍAS FÍSICAS Y FORMALES ESCUELA PROFESIONAL DE INGENÍERIA ELECTRÓNICA MICROPROCESADORES TEMA: EMU 8086 – Practica 3 ALUMNO: Gómez Quispe, Joseph Jason Arequipa - Perú 2017
INSTRUCCIONES ARITMÉTICAS 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, note que al inicio se declaran los datos. ¿Con qué datos se realizarán las operaciones y cuáles serán los resultados? ¿Dónde se almacena el resultado al final de las operaciones? Las operaciones realizan con los datos byte 1, byte 2, Word 1 y Word 2. Los resultados serán: para la primera suma 13 y para la segunda DB79 . El resultado de las operaciones se almacena en las direcciones [011Eh] y [011Fh]
4) Digite y emule el programa 5) Antes de ejecutar el programa tome nota del contenido almacenado en las direcciones 011Eh, 011Fh y 0120h en la TABLA 1, también del estado de las banderas 6) Ejecute paso a paso el programa, anotando la información solicitada en la TABLA 1, observando el resultado de las operaciones y el estado de las banderas ¿Concuerda el resultado lo que usted esperaba? S i se obtuvo el resultado esperado del programa
MOMENTO Inicio Después de la 1° suma Antes de la 2° suma Después de la 2° suma Después del ultimo MOV
DIRECCIONES 011Eh 011Fh 0120h 90 90 90 13 90 90 13 90 90 13 90 90 13 DB 79
O 0 0 0 0 0
BANDERAS S Z A P C 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0
7) Cargue nuevamente el programa e invierta manualmente el estado del acarreo. 8) Ejecute paso a paso hasta la primera suma. ¿Cambió el resultado de la operación? No cambio 9) Continúe ejecutando el programa hasta la segunda suma ¿Se dio algún cambio? No se dio cambio alguno 10) Modifique el código fuente sustituyendo las instrucciones ADD por ADC y emule nuevamente el programa. 11) Repita desde el paso 7 y compare con los resultados previos.
MOMENTO Inicio Después de la 1° suma Antes de la 2° suma Después de la 2° suma Después del ultimo MOV
DIRECCIONES 011Eh 011Fh 0120h 90 90 90 90 90 90 13 90 90 13 90 90 13 DC 79
O 0 0 0 0 0
BANDERAS S Z A P C 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0
¿Qué resultados se modificaron?, ¿qué parte no?, ¿por qué cree que se dieron esos cambios específicos en los resultados? Se modificó la bandera P para los dos últimos momentos siento está en el primer caso 1 y en este otro 0, también hubo en cambio para el último momento de la dirección 011F cambiando de DB a DC 12) Modifique el programa para que funcione como al inicio, pero cambie los datos con los siguientes valores: byte1 equ 9Dh byte2 equ 83h word1 equ 5938 word2 equ -5938 13) Corra a pasos el programa observando la ejecución de cada instrucción y el estado de las banderas. ¿Cuál fue el resultado de las operaciones?, ¿Cómo reaccionaron las banderas? y ¿por qué así y no de otra manera? En cuanto a las banderas tanto la bandera C, O y A cambiaron a 1 al ejecutar la primera suma, y al ejecutar la segunda suma las banderas C, Z, P y A estuvieron en 1 mientras que las demás en cero. En cuando a los resultados, la primera suma dio el resultado de 20 mientras que la segunda suma como era de esperarse dio el resultado de 00 14) Analice el SEGUNDO PROGRAMA, ¿dónde se almacena el resultado de las operaciones? ¿cuál es el resultado de las mismas? El programa realiza una resta y los resultados se almacenan en el mismo registro donde se opera que es CL y DX, los resultados son: para la primera resta es 0B y para la segunda 6600.
15) Digite y emule el programa tomando nota del valor de los minuendos y sustraendos (en formato hexadecimal) con que se realizarán las operaciones en la TABLA 2. 1 6) Ejecute paso a paso el programa, observando los resultados de las operaciones y el estado de las banderas. Anote estos valores en la TABLA 2. 17) Modifique el programa para que se invierta el orden de la operación, de forma que el minuendo pasa a ser sustraendo y viceversa. Repita el paso anterior tomando nota en la segunda fila de la TABLA 2. 18) Repita los pasos 16 y 17, pero esta vez active manualmente el acarreo antes de cada resta ¿observa cambios en las operaciones? Si al activar el acarreo el resultado de la resta cambia a 3300. 19) Cambie el programa para que funcione como al principio. 20) Sustituya las instrucciones SUB por SBB y repita los pasos anteriores. Complete la TABLA 2. ¿Qué diferencias nota entre la ejecución de la instrucción SUB y SBB? La única diferencia que se pudo observar fue el cambio de la bandera A que obtuvo el valor de 1, por los demás valores se mantuvieron como en el comando SUB.
Instrucción
Prueba 1°
SUB 2° 3° SBB 4°
Minuendo 050 06745 045 00145 050 06745 045 00145
Sustraendo 045 00145 050 06745 045 00145 050 06745
Diferencia 0B 6600 F5 9A00 0B 6600 F5 9A00
O 0 0 0 0 0 0 0 0
S 0 0 1 1 0 0 1 1
Z 0 0 0 0 0 0 0 0
A 1 0 0 0 1 0 0 1
P 0 1 1 1 0 1 1 1
C 0 0 1 1 0 0 1 1