tarea-1
DESCRIPTION
microprocesadTRANSCRIPT
-
1TAREA 1 ARITMETICA PARA BCD Y ASCII.
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.
1 Computadora con el programa EMU8086.
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
Facultad: Ingeniera.Escuela: Electrnica.Asignatura: Microprocesadores.
Objetivos especficos
Materiales y equipo
Procedimiento
Microprocesadores. Tarea 1
-
2PROGRAMA 1.model small.stack.dataoperando1 db 39h ; 39h codigo ascii del 9 decimaloperando2 db 39h resultadoascii db 2 dup (?) ;reserva dos byte para el resultado.codemov ax, @DATA ;indica donde estan los datos que se van a operarmov ds, ax mov ax,0 mov al,operando1add al,operando2aaa ;ajuste ascii despues de sumar 2 bytes asciiadd ax,3030hmov resultadoascii, ahmov resultadoascii+1,al mov ax,4c00hint 21hend
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
-
3PROGRAMA 2.model small.stack.dataoperando1 db 36h ; 36h codigo ascii del 6 decimaloperando2 db 32h resultadoascii db 2 dup (?) ;reserva dos byte para el resultado.codemov ax, @DATA ;indica donde estan los datos que se van a operarmov ds, ax mov ax,0 mov al,operando1sub al,operando2aasadd ax,3030hmov resultadoascii, ahmov resultadoascii +1, almov ax,4c00hint 21hend
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.dataoperando1 db 99hoperando2 db 98hresultadoBCD dw 0 .codemov ax, @DATA ;indica donde estan los datos que se van a operar
Microprocesadores. Tarea 1
-
4mov ds, ax mov ah,00mov al,operando1mov bl,operando2add al,bldaaadc ah,00mov resultadoBCD, AXmov ax,4c00hint 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
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 AAA4- 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
Anlisis de Resultados
-
5PROGRAMA 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.
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.
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.
Microprocesadores. Tarea 1
Bibliografa
Investigacin Complementaria