Guia 3
Guia 3
Guia 3
Asignatura: Microprocesadores.
Docente:
Ing. Eynar López.
Integrantes:
Br. Josué Aguilera.
Br. Jonathan Antonio Castillo López.
Br. Eberth José Guido Laínez.
Grupo: 5N1-EL
27 de febrero 2023.
Guía 1
Objetivo General
Objetivos Específicos
Materiales y equipos
• Guía de laboratorio
• Computadora PC con el programa EMU8086
Procedimiento
Datos:
Byte1>> con el valor de 125
Byte2>> con el valor de 150
PRIMER PROGRAMA
#make_COM#
org 100h
INICIO byte1 equ 125
byte2 equ 150
word1 equ 20A3h
word2 equ 5938h
AL = byte1
mov al, byte1 ;suma de 2 números de 1 byte
AL = AL + byte2 add al, byte2
mov [011Eh], al
M[011Eh] = AL
DIRECCIONES BANDERAS
MOMENTO
011Eh 011Fh 0120h O S Z A P C
Inicio 00 00 00 00 00 00 0 0 0 0 0 0
Después del 1ª suma 13 00 00 00 00 00 0 0 0 1 0 1
Antes de la 2ª suma 13 00 00 00 00 00 0 0 0 1 0 1
Después de la 2ª suma 13 00 DB 79 79 00 0 0 0 0 1 0
Después del último MOV 13 00 BD 79 79 00 0 0 0 0 1 0
TABLA 1
¿Qué resultados se modificaron?, ¿qué parte no?, ¿por qué cree que se dieron esos
cambios específicos en los resultados?
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
#make_COM#
org 100h
byte1 equ 80
byte2 equ 69
word1 equ 26437
word2 equ 325
mov cl, byte1 ;resta de 2 números de 1 byte
sub cl, byte2
CL = byte1
CL = CL + byte2
DX = word1
DX = DX - word2
FIN
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.
__________________________________________________________________
TERCER PROGRAMA
INICIO #make_COM#
org 100h
INICIO:
AH = AAh mov ah, 0AAh ;multiplica 2 números de 1 byte
CL = 06h
mov cl, 06
__________________________________________________________________
06 FF 06 05:FA
MUL
-06 FF -06 F9:06
06 FF 06 FF:FA
IMUL
-06 FF -06 00:06
TABLA 3
Guía
3 6
25) Cambien la instrucción MUL por IMUL y el dato -06 por 06.
27) Cambie el dato por -06, ejecute nuevamente y anote los resultados
__________________________________________________________________
__________________________________________________________________
29) Realice el mismo procedimiento del TRECER PROGRAMA, pero ahora el dato
que será cambiado es 05 y la operación DIV por IDIV. Anote sus resultados
en la TABLA 4.
CUARTO PROGRAMA
INICIO #make_COM#
org 100h
INICIO:
AX = 123 mov ax, 123 ;multiplica 2 números de 1 byte
ret
FIN
END
05 7B 05 18 3
DIV
-05 7B FB 00 7B
05 7B 05 18 3
IDIV
-05 7B FB E8 3
TABLA 4
30) Cambie el dato por 00h y ejecute el programa ¿qué ocurrió? Error en la division donde el
denominador es 0.
Guía
3 7
Análisis de resultados
a) Primer programa
b) Segundo programa
Al ejecutar una resta las banderas C y A reaccionan diferente si el minuendo es mayor
o menor al sustraendo, explique el porque basándose en el concepto de préstamo.
Explique porque los resultados de las operaciones cambiaron al usar SBB en lugar de
SUB. Utilice cálculos para fundamentar su explicación.
SUB resta el operando Fuente del destino con el proposito de substraer.
SBB esta operacion resta los operando y resta 1 al resultado cunado CF esta
activada. Con el proposito de substracion de acarreo del destino
c) Tercer programa
¿Cómo se especifica en una instrucción de multiplicación que se desea trabajar con
números de un byte?
En qué registros se almacenan los datos y el resultado de una multiplicación de un
byte?
Explique porque los resultados de las operaciones cambiaron al usar IMUL en lugar de
MUL. Utilice cálculos para fundamentar su explicación.
IMUL tiene como proposito la multiplicacion de dos numeros enteros con signo
Este commando hace lo mismo que el anterior solo que toma en cuenta los
signos de los numeros que se multiplican
Estos signos se guardan en los mismo registros que en la instruccion EMUL.
d) Cuarto programa
¿Cómo se especifica en una instrucción de división que se desea trabajar con números
de un byte?
En qué registros se almacenan los datos y el resultado de una división de un
byte? Explique porque los resultados de las operaciones cambiaron al usar
IDIV en lugar de DIV. Utilice cálculos para fundamentar su explicación.
DIV es la division sin signo el divisor puede ser un byte o la palabra y es el
operando que se le da a la instruccion
IDIV es la division con signo consiste basicamente en lo mismo que la
instruccion DIV solo que es esta toma en cuenta el signo y para los resultados
utiliza los mismos registros igualmente.
¿Por qué la última modificación del programa generó un error en la ejecución? Porque se dividia
entre 0
Bibliografía
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486.
Arquitectura, programación e interfaces, Prentice Hall, México DF, 19953
Biblioteca UDB 001.6404 B847 1997