lab 4 digitales 3

Upload: ing-cristian-camilo-r-garcia

Post on 08-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Lab 4 Digitales 3

    1/14

    SEGUNDO PROGRAMA

  • 8/6/2019 Lab 4 Digitales 3

    2/14

    Coinciden los resultados con lo que esperaba? SI COINCIDEN LOSDATOS

    INSTRUCCION DATO MULTIPLICANDO MULTIPLICADOR PRODUCTO

    MULN 06 0FF 6 05FA

    N -06 0FF -6 F9

    IMULN 06 0FF 6 FFFA

    N -06 0FF -6 N 0006

  • 8/6/2019 Lab 4 Digitales 3

    3/14

    15) Analice el TERCER PROGRAMAqu registros estn involucrados en elproceso? qu datos se van a operar? dnde se almacenar el resultado?(vea el flujograma)

    ANALIZANDO EL FLUJOGRAMA NOS DAMOS CUENTA QUE EN AXALMACENA EL DATO DEL DIVIDENDO (123) Y EN CL ALMACENA ELDATO DEL DIVISOR (05) PARA LUEGO ALMACENAR LOS DATOS DELRESIDUO DE LA DIVISION EN AH (res) Y DEL COCIENTE EN AL(cos)EN HEXADECIMAL.

    INSTRUCCION DATO DIVIDENDO DIVISOR COCIENTE RESIDUO

    DIVN 05 123 5 18 3

    N -05 123 -5 0 7B

    IDIVN 05 123 5 18 3

    N -05 123 -5 E8 3

    17) Cambie el dato por 00h y ejecute el programa qu ocurri?

    GENERA UN DATO ERRONEO YA QUE LA DIVISION POR CERO NOEXISTE.

    b) Segundo programa1. Cmo se especifica en una instruccin de multiplicacin que se deseatrabajar con nmeros deun byte?

    CON UN ACUMULADOR DEJANDOLO ESPECIFICADO ASI: AX

    2. En qu registros se almacenan los datos y el resultado de unamultiplicacin de un byte?

    SE ALMACENAN EN AX

  • 8/6/2019 Lab 4 Digitales 3

    4/14

    3. Explique porque los resultados de las operaciones cambiaron al usar IMULen lugar de MUL.

    PORQUE LA INSTRUCCION DIV ES PARA TRABAJAR CON NUMEROSCON SIGNO, EN CAMBIO LA INSTRUCCION IDIV ES PARA TRABAJARCON NUMEROS SIN SIGNO

    c) Tercer programa1. Cmo se especifica en una instruccin de divisin que se desea trabajarcon nmeros de un byte?

    CON UN ACUMULADOR DEJANDOLO ESPECIFICADO ASI: AX

    2. En qu registros se almacenan los datos y el resultado de una divisin deun byte?

    LOS DATOS DE UNA DIVISION SE ALMACENAN EN UN ACUMULADORCOMO POR EJEMPLO AX UTILIZANDO SU PARTE ALTA AH PARAALMACENAR EL RESIDUO DE LA DIVISION Y AL PARA ALMACENAR ELCOCIENTE DE LA DIVISION

    3. Explique porque los resultados de las operaciones cambiaron al usar IDIVen lugar de DIV.

    PORQUE LA INSTRUCCION DIV ES PARA TRABAJAR CON NUMEROSCON SIGNO, EN CAMBIO LA INSTRUCCION IDIV ES PARA TRABAJARCON NUMEROS SIN SIGNO

    4. Por qu la ltima modificacin del programa gener un error en laejecucin?

    PORQUE AL REALIZAR LA DIVISION UTILIZANDO COMO DIVISOR ELNUMERO 00 NO EXISTE Y NOS ARROJA INFORMACION ERRONEA.

  • 8/6/2019 Lab 4 Digitales 3

    5/14

    MARCO TEORICO

    Los microprocesadores 8086 y 8088

    Historia del 8086/8088

    En junio de 1978 Intel lanz al mercado el primer

    microprocesador de 16 bits: el 8086. En junio de 1979 apareci

    el 8088 (internamente igual que el 8086 pero con bus de datos

    de 8 bits) y en 1980 los coprocesadores 8087 (matemtico) y

    8089 (de entrada y salida). El primer fabricante que desarrollsoftware y hardware para estos chips fue la propia Intel.

    Reconociendo la necesidad de dar soporte a estos circuitos

    integrados, la empresa invirti gran cantidad de dinero en un

    gran y moderno edificio en Santa Clara, California, dedicado al

    diseo, fabricacin y venta de sus sistemas de desarrollo que,

    como se explic anteriormente, son computadoras

    autosuficientes con el hardware y software necesario para

    desarrollar software de microprocesadores. Los sistemas de

    desarrollo son factores clave para asegurar las ventas de unaempresa fabricantes de chips. La inmensa mayora de ventas

    son a otras empresas, las cuales usan estos chips en aparatos

    electrnicos, diseados, fabricados y comercializados por ellas

    mismas. A estas empresas se las llama "fabricantes de equipo

    original", o en ingls, OEM (Original Equipment Manufacturer).

    El disminuir el tiempo de desarrollo de hardware y software

    para las OEM es esencial, ya que el mercado de estos productos

    es muy competitivo. Necesitan soporte pues los meses que les

    puede llevar el desarrollo de las herramientas apropiadas lespuede significar prdidas por millones de dlares. Adems

    quieren ser los primeros fabricantes en el mercado, con lo cual

    pueden asegurarse las ventas en dos reas importantes: a corto

    plazo, ya que al principio la demanda es mucho mayor que la

    oferta, y a largo plazo, ya que el primer producto marca a

    menudo los estndares. De esta manera la empresa Intel haba

    desarrollado una serie completa de software que se ejecutaba

    en una microcomputadora basada en el 8085 llamada "Intellec

    Microcomputer Development System". Los programas incluanensambladores cruzados (stos son programas que se ejecutan

  • 8/6/2019 Lab 4 Digitales 3

    6/14

    en un microprocesador y generan cdigo de mquina que se

    ejecuta en otro), compiladores de PL/M, Fortran y Pascal y

    varios programas de ayuda. Adems haba un programa

    traductor llamado CON V86 que converta cdigo fuente 8080 /

    8085 a cdigo fuente 8086/8088. Si se observan de cercaambos conjuntos de instrucciones, queda claro que la

    transformacin es sencilla si los registros se traducen as:

  • 8/6/2019 Lab 4 Digitales 3

    7/14

    control de software, podan conmutarse los microprocesadores.

    El sistema operativo utilizado era el CP/M (de Digital Research).

    El desarrollo ms notable para la familia 8086/8088 fue la

    eleccin de la CPU 8088 por parte de IBM (International

    Business Machines) cuando en 1981 entr en el campo de lascomputadoras personales. Esta computadora se desarroll bajo

    un proyecto con el nombre "Acorn" (Proyecto "Bellota") pero se

    vendi bajo un nombre menos imaginativo, pero ms correcto:

    "Computadora Personal IBM", con un precio inicial entre 1260

    dlares y 3830 dlares segn la configuracin (con 48KB de

    memoria RAM y una unidad de discos flexibles con capacidad

    de 160KB costaba 2235 dlares). Esta computadora entr en

    competencia directa con las ofrecidas por Apple (basado en el

    6502) y por Radio Shack (basado en el Z-80).

    Arquitectura de los procesadores 8088 y 8086:

    El 8086 es un microprocesador de 16 bits, tanto en lo que se

    refiere a su estructura como en sus conexiones externas,

    mientras que el 8088 es un procesador de 8 bits que

    internamente es casi idntico al 8086. La nica diferencia entre

    ambos es el tamao del bus de datos externo. Intel trata esta

    igualdad interna y desigualdad externa dividiendo cadaprocesador 8086 y 8088 en dos sub-procesadores. O sea, cada

    uno consta de una unidad de ejecucin (EU: Execution Unit) y

    una unidad interfaz del bus (BIU: Bus Interface Unit). La unidad

    de ejecucin es la encargada de realizar todas las operaciones

    mientras que la unidad de interfaz del bus es la encargada de

    acceder a datos e instrucciones del mundo exterior. Las

    unidades de ejecucin son idnticas en ambos

    microprocesadores, pero las unidades de interfaz del bus son

    diferentes en varias cuestiones, como se desprende delsiguiente diagrama en bloques:

    esta propiedad. El ltimo registro mencionado es el equivalente

    al acumulador de los procesadores anteriores (8080 y 8085).

    Adems hay instrucciones como DAA; DAS; AAA; AAS; AAM;

    AAD; LAHF; SAHF; CBW; IN y OUT que trabajan con AX o con

    uno de sus dos bytes (AH o AL). Tambin se utiliza este registro

    (junto con DX a veces) en multiplicaciones y divisiones. 2. BX =

    Registro base, dividido en BH y BL. Es el registro base de

    propsito similar (se usa para direccionamiento indirecto) y esuna versin ms potente del par de registros HL de los

  • 8/6/2019 Lab 4 Digitales 3

    8/14

    procesadores anteriores. 3. CX = Registro contador, dividido en

    CH y CL. Se utiliza como contador en bucles (instruccin LOOP),

    en operaciones con cadenas (usando el prefijo REP) y en

    desplazamientos y rotaciones (usando el registro CL en los dos

    ltimos casos). 4. DX = Registro de datos, dividido en DH y DL.Se utiliza junto con el registro AX en multiplicaciones y

    divisiones, en la instruccin CWD y en IN y OUT para

    direccionamiento indirecto de puertos (el registro DX indica el

    nmero de puerto de entrada/salida). 5. SP = Puntero de pila

    (no se puede subdividir). Aunque es un registro de uso general,

    debe utilizarse slo como puntero de pila, la cual sirve para

    almacenar las direcciones de retorno de subrutinas y los datos

    temporarios (mediante las instrucciones PUSH y POP). Al

    introducir (push) un valor en la pila a este registro se le resta

    dos, mientras que al extraer (pop) un valor de la pila este a

    registro se le suma dos. 6. BP = Puntero base (no se puede

    subdividir). Generalmente se utiliza para realizar

    direccionamiento indirecto dentro de la pila. 7. SI = Puntero

    ndice (no se puede subdividir). Sirve como puntero fuente para

    las operaciones con cadenas. Tambin sirve para realizar

    direccionamiento indirecto. 8. DI = Puntero destino (no se

    puede subdividir). Sirve como puntero destino para las

    operaciones con cadenas. Tambin sirve para

    Indicadores (flags)

    Hay nueve indicadores de un bit en este registro de 16 bits. Los

    cuatro bits ms significativos estn indefinidos, mientras que

    hay tres bits con valores determinados: los bits 5 y 3 siempre

    valen cero y el bit 1 siempre vale uno (esto tambin ocurra en

    los procesadores anteriores). Registro de indicadores (16 bits)

    Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

  • 8/6/2019 Lab 4 Digitales 3

    9/14

    OBJETIVOS

    GENERAL Conocimiento del microprocesador 8086 teniendo en cuenta su

    alimentacin , el teclado , monitor , ubicacin en memoria

    ESPECIFICOS

    Observar como mediante la modificacin conocimiento mas afondo del microprocesador se refleja en un display virtual losdatos cargados en el programa .

    Conocer como se manejan las operacin de multiplicacin ydivisin teniendo en cuenta los simbolos

    Identificar los elementos que conforman un cdigo fuente tpico,escrito con la sintaxis del lenguaje ensamblador de la familia 8086.

    Crear cdigos fuentes usando la sintaxis del lenguaje ensamblador

    Identificar los principales elementos que conforman el ambienteIntegrado de Programacin (IDE)Del programa EMU8086.

  • 8/6/2019 Lab 4 Digitales 3

    10/14

    CONCLUSIONES

    se realizaron las siguientes operaciones para ingresar ordenes

    como lo fueron la and la div y idiv y asi miramos como varia el

    programa con tan solo una modificacin de una lnea de cdigo

    teniendo en cuenta la lgica digital mencionada y laprecedencia en debido caso con los signos matematicos ..

    se programaron una a una las palabras para observar el

    manejo uso y activacin y desactivacin de las banderas que

    nos mostraron en los diferentes programas elaborados

    se manejo una informacin mas detallada y visualizadamediante un display virtual que nos mostraba el cambiode informacin a medida que se hiba comilando elprograma paso a paso

  • 8/6/2019 Lab 4 Digitales 3

    11/14

    la realizacin de la gua nos mostro nuevos conceptos de la

    programacin del micro donde ya se ingreso un programa mas

    extenso y se realizaron operaciones conjuntas con las que ya

    habamos trabajado

    INTRODUCCION ALA EMU 8086 GUIA 4

    NOMBRES:

    Hctor Manuel Herrera Herrera 701474wilmar Avellaneda Garca 701477

  • 8/6/2019 Lab 4 Digitales 3

    12/14

    Cristian Rodrguez Garca 701478

    DIGITALES III

    PROFESOR:

    ALBERTO BERNAL

    UNIVERSIDAD CATOLICA DE COLOMBIA

    BOGOTA D.C. 2011

    PRIMER PROGRAMA

    ADDmomento 011Eh 011Fh 021h Display o s z a p c

    iniciomov

    [011Eh], almov

    [011Fh], axint 21h N 00000 0 0 0 0 0 0

    Al final del primerbloque

    out dx,al N 00000 0 0 0 0 0 0

    Al final delsegundo bloque

    out dx,ax N 00000 0 0 0 0 0 0

    ADD

  • 8/6/2019 Lab 4 Digitales 3

    13/14

    momento 011Eh 011Fh 021h Display o s z a p c

    iniciomov

    [011Eh], almov

    [011Fh], axint 21h N 00000 0 0 0 1 0 1

    Al final del primerbloque out dx,al N 00000 0 0 0 1 0 1

    Al final delsegundo bloque

    out dx,ax N 00019 0 0 0 0 1 0

    ADC

    momento 011Eh 011Fh 021h Display o s z a p c

    iniciomov

    [011Eh], almov

    [011Fh], ax int 21h N 00000 1 0 0 1 0 1Al final del primer

    bloqueout dx,al N 00000 0 0 0 1 0 1

    Al final delsegundo bloque

    out dx,ax N 00032 0 0 0 1 0 1

    Analice el PRIMER PROGRAMA, note que al inicio se declaran los datos.Con qu datos se realizarn las operaciones y cules sern los resultados,tanto en decimalcomo en hexadecimal? Dnde se almacena el resultado al final de lasoperaciones?R: byte1 equ 125byte2 equ 150word1 equ 20A3hword2 equ 5938h

    DEC:125+150 =275

    HEX: 275=113

    RTA M[011Eh]=AL

    HEX=20A3+5938 =1746hDEC: 1746h =5958

  • 8/6/2019 Lab 4 Digitales 3

    14/14

    RTA M[011Fh]=AX

    Concuerdan los resultados con lo que usted esperaba? __SI___

    Cul fue el resultado de las operaciones?, Cmo reaccionaron lasbanderas? y por qu as y node otra manera?RTA= HEX:9D+83=5ChDEC :5CH=92

    RTA M[011Eh]=AL

    DEC: 5938-5938=0

    HEX :0=0

    RTA M[011Fh]=AX

    LAS BANDERAS REACCIONARON CAMBIANDO SUS VALORES DEBIDO A

    QUE VERIFICA EN CADA UNA DE ELLAS SI SE CUMPLE O NOLA

    CONDICION CON LA QUE SE ESTAN EVALUANDO LOS REGISTROS.

    Primer programa1. Tomando en cuenta los datos particulares de cada operacin explique elporqu de la activacin o desactivacin de las banderas O, S, Z, C y A.

    RTA// las banderas reaccionaron cambiando sus valores debido a que verifica en cada

    una de ellas si se cumple o nola condicion con la que se estan evaluando los registros.

    2. Modifique el cdigo fuente sustituyendo las instrucciones ADD por ADC yemule nuevamente el programa, repita el paso 4 y 5 y compare con losresultados obtenidos con los obtenidos con ADD Qu resultados semodificaron?, qu parte no?, por qu cree que se dieron esos cambiosespecficos en los resultados?