You are on page 1of 5

Microprocesadores.

Tarea 1

Facultad: Ingeniera.
Escuela: Electrnica.
Asignatura: Microprocesadores.

TAREA 1 ARITMETICA PARA BCD Y ASCII.


Objetivos especficos

Conocer el manejo de los caracteres ASCII para la presentacin en pantalla de los resultados.
Practicar el uso de ajustes para las operaciones aritmticas en modo decimal.

Materiales y equipo

1 Computadora con el programa EMU8086.

Procedimiento
1) Abra el emu8086.
2) Revise la sintaxis de las instrucciones AAA, AAS y DAA en el simulador pulsando la tecla F1 y dando
clic en el ttulo 8086 Instruction set.
3) Minimice la ventana y regrese al emulador, en la barra de men seleccione ascii codes e identifique
en la tabla de caracteres ASCII los nmeros en ASCII hexadecimal que les corresponde a los nmeros
del 0 al 9 y antelos a continuacin (al dar clic en cualquier parte de la ventana puede intercambiar
entre ver los datos ASCII en su correspondiente decimal o hexadecimal):
____________________________________________________________________________________
____________________________________________________________________________________
4) Digite el PROGRAMA 1 en el simulador: este es un ejemplo de uso de AAA

Microprocesadores. Tarea 1

PROGRAMA 1
.model small
.stack
.data
operando1 db 39h ; 39h codigo ascii del 9 decimal
operando2 db 39h
resultadoascii db 2 dup (?) ;reserva dos byte para el resultado
.code
mov ax, @DATA ;indica donde estan los datos que se van a operar
mov ds, ax
mov ax,0
mov al,operando1
add al,operando2
aaa ;ajuste ascii despues de sumar 2 bytes ascii
add ax,3030h
mov resultadoascii, ah
mov resultadoascii+1,al
mov ax,4c00h
int 21h
end

5) D clic sobre EMULATE y abra la ventana de variables (en el botn vars), debera visualizar 3
elementos: operando1, operando2 y resultadoascii, seleccione en las opciones de Show as de
cada variable, la visualizacin ASCII, en la variable resultadoascii tambin cambie elements a
2.
6) Corra el programa paso a paso hasta antes de ejecutar la operacin AAA, observe el estado del
acumulador y de las banderas, especialmente AF ____________________
7) Ejecute la instruccin de ajuste y observe el estado del acumulador (AX) y las banderas en este
momento especialmente CF y AF ____________________
8) Ejecute todo el programa
9) Observe el contenido de la variable resultadoascii
10) Modifique el programa anterior poniendo como operandos los nmeros 34h y 32h
11) Repita el procedimiento de los pasos 5 al 9 y describa las diferencias en los estados del acumulador y
las banderas AF y CF
12) Copie el PROGRAMA 2 que es una aplicacin del ajuste AAS

Microprocesadores. Tarea 1

PROGRAMA 2
.model small
.stack
.data
operando1 db 36h
; 36h codigo ascii del 6 decimal
operando2 db 32h
resultadoascii db 2 dup (?) ;reserva dos byte para el resultado
.code
mov ax, @DATA ;indica donde estan los datos que se van a operar
mov ds, ax
mov ax,0
mov al,operando1
sub al,operando2
aas
add ax,3030h
mov resultadoascii, ah
mov resultadoascii +1, al
mov ax,4c00h
int 21h
end

13) Repita el paso 5.


14) Corra el programa paso a paso hasta antes de ejecutar la operacin AAS, observe el estado del
acumulador y de las banderas, especialmente AF y CF _________________________________
15) Ejecute la instruccin de ajuste y observe el estado del acumulador y las banderas en este momento
especialmente CF y AF ____________________
16) Ejecute todo el programa
17) Observe el contenido de la variable resultadoascii
18) Cambie los operandos de modo que el operando2 sea mayor que operando1 y ejecute el programa
por qu se da este resultado?
19) Copie el PROGRAMA 3 que es una aplicacin de ajuste DAA
PROGRAMA 3
.model small
.stack
.data
operando1 db 99h
operando2 db 98h
resultadoBCD dw 0
.code
mov ax, @DATA ;indica donde estan los datos que se van a operar

Microprocesadores. Tarea 1

mov ds, ax
mov ah,00
mov al,operando1
mov bl,operando2
add al,bl
daa
adc ah,00
mov resultadoBCD, AX
mov ax,4c00h
int 21h
end
20) D clic sobre EMULATE y abra la ventana de variables (en el botn vars), debera visualizar 3
variables: operando1, operando2 y resultadoBCD, seleccione en las opciones de Show as la
visualizacin HEXA para las tres variables y que solo se muestre un elemento.
21) Corra el programa paso a paso hasta antes de ejecutar la operacin DAA, observe el estado del
acumulador y de las banderas, especialmente AF y CF.
22) Ejecute la instruccin de ajuste y observe el estado del acumulador y las banderas en este momento
especialmente CF y AF ____________________
23) Cul es el propsito de la suma del acumulador AH con 00h? (ADC AH, 00H) ___________________
_______________________________________________________________________________________
24) Ejecute todo el programa
25) Observe el contenido de la variable resultadoBCD
26) Cambie los operandos por cualquier dato comprendido entre 01h y 99h y compruebe los resultados

Anlisis de Resultados
PROGRAMA 1
1- Para qu se realiza la instruccin ADD AX, 3030h?
2- En qu formato de decimal (empaquetado o no empaquetado) se da el resultado, despus del ajuste,
en AAA?
3- Cree un programa en ensamblador que haga el ajuste a ASCII sin utilizar la instruccin AAA
4- Hacer un programa que sume tres nmeros de tres bytes que se recibieron por el teclado (ASCII) y
quedaron almacenados a partir de la localidad 0800h, guarde el resultado en ASCII a partir de la
direccin 0820h (Tenga en cuenta que los mximos nmeros a sumar son 393939+393939+393939)

Microprocesadores. Tarea 1

PROGRAMA 2
1- En qu formato de decimal (empaquetado o no empaquetado) se da el resultado, despus del ajuste,
en AX?
2- Cmo puede arreglarse el hecho de tener un resultado negativo en el programa y que no me afecte
la presentacin del resultado en pantalla? (Haga un programa de la solucin).
PROGRAMA 3
1- En qu formato de decimal (empaquetado o no empaquetado) se da el resultado despus del ajuste
DAA?
2- Cul es el propsito de la suma del acumulador AH con 00h? (ADC AH, 00H)
3- Hacer un programa que sume tres nmeros decimales de tres bytes almacenados a partir de la
localidad 0900h, guarde el resultado en decimal a partir de la direccin 0920h (Tenga en cuenta que
los mximos nmeros a sumar son 999999+999999+999999)
Presente las respuestas a las preguntas que se le realizaron en el procedimiento.

Investigacin Complementaria

Investigue Sobre las otras instrucciones de ajuste que tiene el microprocesador 8086: DAS, AAD y
AAM

Investigue cmo convertir un nmero de decimal a hexadecimal y trate de hacer un programa de


conversin con nmeros ASCII como entrada para este programa, pueden ser de 8 bits.

Haga un programa que permita multiplicar nmeros de 3 dgitos decimales y que brinde la
respuesta en decimal.

Bibliografa
Ayuda del EMU8086 (Instrucciones del 8086).
Alfredo Rojas Ponce. Ensamblador Bsico. Editorial Computec. Primera edicin. 1993. Cap. 6 , pags.
177 191 Clasificacin UDB: 001.6404 R471 1993.
Barry B. Brey. Los microprocesadores Intel, Arquitectura, programacin e interfaces. Editorial Prentice
Hall, Tercera Edicin. Clasificacin UDB: 001.6404 B847 1997.

You might also like