Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3 7
Análisis de resultados
a) Primer programa
OF. Indica un error producido durante las operaciones con signo. En la suma con signo igual o
una resta con signo opuesto producen un resultado que es más de 16 bits. O en la división
produce un cociente que es mayor al registro.
Explique porque los resultados de las operaciones cambiaron al usar ADC en lugar de
ADD. Utilice cálculos para fundamentar su explicación.
Al usar la instrucción ADD se omite el acarreo mientras que con la instrucción ADC se llama al acarreo
que lleva antes.
Add al, 150 ; sumar 01111101 + 10010110 = 00010011 (13h) con CF=1
Mov dl, 0 ; registro DL todos 0
Adc dl, 0 ; aca suma 00000000 + 00000000 + CF = 00000001 (01h)
Explicación
Al cargar los datos en los registros se da una operación de suma de binarios en un 8 bit al sumar
125+150 es igual a 275 esta suma en un binario de un byte es de espacio insuficiente es por eso que
se utiliza el acarreo al en este ejemplo el acarreo lo sumamos en el registro DL el cual suma 0 +0
+acarreo es igual 00000001(01h) así se puede obtener un número mayor a la suma de un dato
preciso con son de 1 byte que solo puede tener hasta 256.
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.
En el ejemplo se puede ver como se restan dos datos en registros cuando el minuendo es mayor al
sustraendo no es muy difícil es caundo el sustraendo es mayor al minuendo donde vemos el problema
Explicación
Acá vemos que al substraer números mayores al sustraendo el acarreo es negativo es decir se presta
un bit para poder realizar la resta es por ende que al quitar un bit a una cadena byte este lo convierte
en signo negativo
c) Tercer programa
¿Cómo se especifica en una instrucción de multiplicación que se desea trabajar con
números de un byte?
Con el tipo de registro con el que se va a trabajar por ejemplo tenemos el registro AX que
contiene dos bytes AH y AL cada uno de 8 bit al decir que se va a multiplicar un dato de 8 bit
por otro de 8 bit se debe de dar espacio suficiente en el registro de 16 bit.
Explique porque los resultados de las operaciones cambiaron al usar IMUL en lugar de
MUL. Utilice cálculos para fundamentar su explicación.
mov ah, 0
mov al, 01
mov cl, 02
mul cl
mov ah, 0
mov al, 01
mov cl, 02
imul cl
0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
mov ah, 0
mov al, 01
mov cl, -02
mul cl
mov ah, 0
mov al, 01
imov cl, -02
mul cl
0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
En la operación MUL IMUL con un dato negativo o una cifra con signo negativo esto
cambia ya que con MUL la multiplicación con un dato negativo este toma al dato
positivo en este caso 254 y lo multiplica por 1 mientras que con IMUL este toma en
cuenta el dato con el signo negativo y lo multiplica por 1 en este caso -2
d) Cuarto programa
¿Cómo se especifica en una instrucción de división que se desea trabajar con números
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.
Porque al igual que la multiplicación la operación o instrucción DIV, IDIV reconoce el símbolo
Al dividir un numero registrado en AL (1 byte) con el dato o divisor CL(1 byte) y ambos son de signo
positivo no abra ningún problema se realizara la división y se registrara el cociente en AL y el residuo
en AH.
Pero al momento de hacer la división con alguno de los componentes con signo o valor negativo en DIV
no reconoce este símbolo y lo toma como si fuera un número mayor donde el cociente es 0 y el residuo
es el mismo dividendo, por eso se utiliza IDIV donde reconoce el valor negativo y este es dividido
normalmente pero con el signo negativo.
Investigación complementaria
Diseñe dos flujo-gramas que representen el proceso para sumar dos números de 4
bytes cada uno, en el primero se trabajará con registros de 16 bits y en el segundo de
8 bits.
Bibliografía
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486.
3
Arquitectura, programación e interfaces, Prentice Hall, México DF, 1995
Biblioteca UDB 001.6404 B847 1997
Guía
3 8
Puede consultar el material en línea del EMU8086 sobre los temas de esta actividad. Se
recomiendan: