guia 4 micro

5
Guía 4 1 Aritmética Para BCD Y ASCII - Utilizar el programa EMU8086 para simular el comportamiento de las operaciones aritméticas decimales - Conocer el manejo de los caracteres ascii para la presentación en pantalla de los resultados. - Practicar el uso de ajustes para las operaciones aritméticas en modo decimal. - Computadora con el 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 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 de caracteres 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 en el simulador: este es un ejemplo de uso de AAA Objetivo General Objetivos específicos Procedimiento Materiales y equipos

Upload: tacomedinaoscar

Post on 07-Sep-2015

224 views

Category:

Documents


5 download

DESCRIPTION

aritmetica para DCB y ASCII

TRANSCRIPT

  • Gua 4 1

    Aritmtica Para BCD Y ASCII

    - Utilizar el programa EMU8086 para simular el comportamiento de las operaciones aritmticas decimales

    - 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.

    - Computadora con el 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 correspondientes 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

    Objetivo General

    Objetivos especficos

    Procedimiento

    Materiales y equipos

  • Gua 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 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 VAR),

    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 tambien cambien 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 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

  • Gua 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 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

  • Gua 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 clic sobre EMULATE y abra la ventana de variables (en el botn VAR),

    debera visualizar 3 variables: Operando1, Operando2 y resultadoBCD, seleccione en las opciones de Show as la visualizacin HEXA para las tres variables.

    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

  • Gua 4 5

    PROGRAMA 1

    1- Para qu se realiza la instruccin ADD AX, 3030h? 2- Cmo se podra hacer el ajuste a ascii si no se tuviera la instruccin AAA? 3- En qu formato de decimal (empaquetado o no empaquetado) se da el

    resultado, despus del ajuste, en AX?

    PROGRAMA 2

    1- Cmo se podra realizar el ajuste a ascii si no se tuviera la instruccin AAS? 2- En qu formato de decimal (empaquetado o no empaquetado) se da el

    resultado, despus del ajuste, en AX? 3- 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 algoritmo o flujograma de la posible solucin).

    PROGRAMA 3

    1- En qu formato de decimal (empaquetado o no empaquetado) se da el resultado despus del ajuste DAA?

    2- Cmo se podra realizar el ajuste decimal sin tener que utilizar la instruccin DAA?

    3- Cul es el propsito de la suma del acumulador AH con 00h? (ADC AH, 00H)

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

    2- 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.

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

    1- Ayuda del EMU8086 (Instrucciones del 8086) 2- Alfredo Rojas Ponce. Ensamblador Bsico. Editorial Computec. Primera

    edicin. 1993. Cap. 6 , pags. 177 191 3- Barry B. Brey. Los microprocesadores Intel, Arquitectura, programacin e

    interfaces. Editorial Prentice Hall, Terc

    Bibliografa

    Investigacin complementaria

    Anlisis de resultados