Microprocesadores
4
1
Aritmética Para BCD Y ASCII
Facultad: Ingeniería. Escuela: Electrónica Asignatura: Microprocesadores
Objetivo General
Utilizar el programa EMU8086 para operaciones aritméticas decimales simular el comportamiento de las
Objetivos específicos
Conocer el manejo de los caracteres ascii para la presentación en pantalla de los resultados. Practicar el uso de ajustes paralas operaciones aritméticas en modo decimal.
Materiales y equipos
Computadora con el 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 título “8086 Instruction set”. 3- Minimice la ventana y regrese al emulador, en la barra de menú seleccione “ascii codes” e identifique en la tabla decaracteres ASCII los números correspondientes a los números del 0 al 9 y anótelos a continuación (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 enel simulador: este es un ejemplo de uso de AAA
Guía
4
2
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 2bytes 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 botón VAR), debería visualizar 3 elementos: Operando1, Operando2 y resultadoascii, seleccione en las opciones de “Show as” de cada variable, la visualización “ASCII”, en la variable resultadoascii tambien cambien elements a 2. 6- Corra elprograma paso a paso hasta antes de ejecutar la operación AAA, observe el estado del acumulador y de las banderas, especialmente AF ____________________ 7- Ejecute la instrucción de ajuste y observe el estado del acumulador 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 elprograma anterior poniendo como operandos los números 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 aplicación del ajuste AAS
Guía
4
3
PROGRAMA 2 .model small .stack .data operando1 db 36h ; 39h codigo ascii del 9 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 operación AAS, observe el estado del acumulador y de lasbanderas, especialmente AF y CF _________________________________ 15- Ejecute la instrucción 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 aplicación de ajuste DAA
Guía
4
4
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 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é...
Regístrate para leer el documento completo.