lab 4 digitales 3
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?