3
.
Instrucciones Aritméticas
Objetivo General
Objetivos Específicos
Materiales y equipos
Guía de laboratorio
Procedimiento
¿Con qué datos se realizarán las operaciones y cuales serán los resultados?
PRIMER PROGRAMA
#make_COM#
org 100h
INICIO byte1 equ 125
byte2 equ 150
word1 equ 20A3h
word2 equ 5938h
M[011Fh] = AX
ret
FIN END
¿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:
¿Cuál fue el resultado de las operaciones?, ¿Cómo reaccionaron las banderas? y ¿por qué
así y no de otra manera?
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
SEGUNDO PROGRAMA
#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
mov dx, word1 ;resta de 2 números de 2 byte
CL = byte1
CL = CL + byte2
DX = word1
DX = DX - word2
FIN
18)Repita los pasos 16 y 17, pero esta vez active manualmente el acarreo
antes de cada resta ¿observa cambios en las operaciones?
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?
__________________________________________________________________
__________________________________________________________________
Instrucción Prueba Minuendo Sustraendo Diferencia O S Z A P C
SUB 1º
2º
SBB 3º
4º
TABLA 2
__________________________________________________________________
__________________________________________________________________
Guía 5
3
__________________________________________________________________
TERCER PROGRAMA
#make_COM#
INICIO
org 100h
INICIO: mov ah, 0AAh ;multiplica 2 números de 1 byte
AH = AAh
__________________________________________________________________
06
MUL
-06
06
IMUL
-06
TABLA 3
Guía 6
3
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
__________________________________________________________________
__________________________________________________________________
CUARTO PROGRAMA
INICIO #make_COM#
org 100h
INICIO: mov ax, 123 ;multiplica 2 números de 1 byte
AX = 123
05
DIV
-05
05
IDIV
-05
TABLA 4
30) Cambie el dato por 00h y ejecute el programa ¿qué ocurrió? ______
Guía 7
3
Análisis de resultados
a) Primer programa
Explique porque los resultados de las operaciones cambiaron al usar ADC en lugar de
ADD. Utilice cálculos para fundamentar su explicación.
b) Segundo programa
c) Tercer programa
Explique porque los resultados de las operaciones cambiaron al usar IMUL en lugar de
MUL. Utilice cálculos para fundamentar su explicación.
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.
¿Por qué la última modificación del programa generó un error en la ejecución?
Investigación complementaria
Compare el funcionamiento de la directiva EQU con DB.
Investigue como se puede realizar una multiplicación de dos números de dos bytes
cada uno.
Investigue como se puede realizar una división de dos números de dos bytes cada uno.
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
Puede consultar el material en línea del EMU8086 sobre los temas de esta actividad. Se
recomiendan: “Arithmetic and logic instructions ”,
www.emu8086.com/assembly_language_tutorial_assembler_reference/a sm_tutorial_06.html