Está en la página 1de 9

UNIVERSIDAD NACIONAL DE INGENIERIA DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES1 LABORATORIOS DE MAQUINAS COMPUTADORAS I SEGUNDO LABORATORIO

EL EMU8086 YEL MICROPROCESADOR 8086.


Objetivos especficos
Ubicar en la memoria los diferentes segmentos que conforman un archivo EXE. Identificar los registros del modelo de programacin del 8086. Observar la relacin que existe entre los lenguajes de ensamblador y mquina. Emplear las instrucciones MOV y OUT.

Materiales y equipo
1 Computadora con el programa EMU8086. 1 Mdulo IDL-800 Digital Lab o fuente de +5V con tarjeta con switches y leds. 1 Breadboard. 1 cable para puerto paralelo con identificacin de pines. 1 Pinza y cortadora de alambre. Alambre de telefona.

Procedimiento
1) Ejecute el emulador 8086. 2) Digite el primer programa y guarde el archivo asignndole como nombre su nmero de carnet. 3) Compile el archivo. 4) Use el botn emulate para cargar el archivo ejecutable, pero no lo ejecute. 5) Observe la ventana original source code Cul lnea de instruccin est resaltada en amarillo? Mov AX, @ data

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


2

PRIMER PROGRAMA .model small .stack .data BYTE1 DB 7Ah ;Declara byte (8 bits) en hexadecimal BYTE2 DB 99 ;Declara byte en decimal BYTE3 DB 11001111b ;Declara byte en binario BYTE4 DB 'A' ;Declara byte en formato ASCII BYTE5 DB ? BYTE6 DB ? BYTE7 DB ? BYTE8 DB ? .code mov AX,@data ;Mueve en AX la direccion donde ;esta el segmento de datos mov DS,AX ;Mueve el contenido de AX a DS mov AH, BYTE1 ;Mueve los datos desde la memoria mov BL, BYTE2 ;hacia el microprocesador mov CH, BYTE3 mov DL, BYTE4 mov BYTE5, AH ;Mueve los datos desde el micro hasta mov BYTE6, BL ; la memoria mov BYTE7, CH mov BYTE8, DL FIN: mov ax, 4c00h int 21h end ;fin del programa

6) En la ventana original source code resalte (haga clic en) en el primero de los datos declarados BYTE1. 7) Relacione la informacin de la Tabla 1 y la ventana emulator. 8) Resalte cada uno de los datos declarados en el cdigo fuente y complete la informacin de la Tabla 1. Determine la direccin de inicio y final del segmento de datos, tanto en formato absoluto como en segmento:desplazamiento: 07200:0000 - 07207:0007

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


3
DIRECCION SEGMENT:DESPLAZ 0720:0000 ABSOLUTA 07200 DATO EN MEMORIA CODIGO BINARIO 7Ah

TIPO DE DATO

BYTE

0720:0001 0720:0002 0720:0003 0720:0004 0720:0005 0720:0006 0720:0007

07201 07202 07203 07204 07205 07206 07207


Ta b l a 1 . S e g m e n t o d e d a tos.

63h 0CFh 41h 00h 00h 00h 00h

9)

Resalte la primera lnea de instruccin del segmento de cdigo.

10) Relacione la informacin de la Tabla 2 y la ventana emulator. 11) Resalte cada una de las lneas de instruccin del segmento de cdigo y complete la informacin que hace falta en la Tabla 2. Determine la direccin de inicio y final del segmento de cdigo, tanto en formato absoluto como en segmento:desplazamiento: 0721:0000 - 0721:0024

12) Para ubicar el segmento de PILA escribir en la direccin SEGMENTO:DESPLAZAMIENTO el dato 0710:0100. 13) Suba unas cuantas direcciones y observar que contienen los datos (cdigo binario) 54h. Anote en la Tabla 3 la direccin del primero y del ltimo dato que contenga 54h. Estos demarcan el segmento de PILA o STACK. 14) Presione el botn reload. 15) Anote en la Tabla 4 el contenido de los registros del microprocesador. 16) Ejecute la primera microprocesador. lnea de instruccin verificando que los datos son transferidos al

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


4
SEGMENTO DE CDIGO Instrucciones en lenguaje mquina. Instrucciones en Instrucciones Cdigos lenguaje desensambladas binarios ensamblador SEGM:DESP ABSOLUTA almacenados en memoria DIRECCIONES DE MEMORIA 0721:0000 0721:0001 0721:0002 07210 07211 07212 B8 20 07 MOV AX,00720h MOV DS,AX mov AX,@data mov DS,AX

0721:0003 0721:0004

0721:0005 0721:0006 0721:0007 0721:0008 0721:0009 0721:000A 0721:000B 0721:000C

07213 07214

07215 07216 07217 07218 07219 0721A 0721B 0721C

8E D8
8A 26 00 00 8A 1E 01 00

MOV AH, [00000h]

Mov AH, BYTE1

MOV BL,[00001h] mov BL, BYTE2

0721:000D 0721:000E 0721:000F 0721:0010 0721:0011 0721:0012 0721:0013 0721:0014


0721:0015 0721:0016 0721:0017 0721:0018 0721:0019 0721:001A 0721:001B 0721:001C

0721D 0721E 0721F 07220

07221 07222 07223 07224 07225 07226 07227 07228 07229 0722A 0722B 0722C

8A 2E 02 00
8A 16 03 00 88 26 04 00 88 1E 05 00

MOV CH, [00002h] MOV DL, [00003h]

mov CH, BYTE3

mov DL, BYTE4

MOV [00004h],AH

mov BYTE5, AH

MOV [00004h], BL

mov BYTE6, BL

0721:001D 0721:001E 0721:001F 0721:0020 0721:0021 0721:0022 0721:0023 0721:0024


0721:0025 0721:0026 0721:0027

0722D 0722E 0722F 07230 07231 07232 07233 07234


07235 07236 07237

88 2E 06 00 88 16 07 00
B8 00 4C

MOV [00006h],CH

mov BYTE7, CH

mov BYTE8, DL
MOV [00007h],DL

MOV AX,4C00h INT 021h

mov ax, 4c00h

0721:0028 0721:0029

07238 07239

CD 21

int 21h

Ta b l a 2 . S e g m e n t o d e c d i g o .

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


5

P I L A O S TA C K PRIMER DATO ULTIMO DATO

DIRECCIO N S E G M E N T: D E S P L A B S O L U TA AZ 071F:000A 071ff

0710:0000

07100

Ta b l a 3 . S e g m e n t o d e P I L A .

CS:

IP:

0721 0000
AX:

0000 0000
BX:

SP: DS: BP: ES: 0710 0100 0700 013A CX: 0000 0700 Ta b l a 4 . C o n t e n i d o d e l o s r e g i s t r o s a l

SS:

DX: 0000 BX: 0000 SI: 0000 DI: 0000 inicio del cdigo.

17) Ejecute la siguiente lnea de instruccin corroborando la transferencia de datos. 18) Copie nuevamente el contenido de los registros en la Tabla 5. CS: F400 4C00 AX: IP: SS: SP: DS: DX: 0041 0204 0710 BP: ES: BX: 0720 0063 CF3A 00FA 0720 SI: 0000 BX: CX: 0000 DI: 0000 0700 Ta b l a 5 . C o n t e n i d o d e l o s r e g i s t r o s d u r a n t e l a e j e c u c i n d e l p r o grama. 19) Abra la ventana variables y verifique que todas las variables declaradas son visibles. 20) Contine ejecutando paso a paso hasta que los primeros cuatro datos hayan sido transferidos a sus respectivos registros dentro del microprocesador. 21) Ejecute las siguientes cuatro instrucciones verificando los cambios en las variables declaradas. 22) Cierre la ventana variables 23) Recargue el programa. 24) En la ventana emulator presione el botn aux y ah selecciones la opcin memory. Debe observar una imagen similar a la de la Figura 1. 25) En el espacio de la 1 direccin escriba el valor 0720:0000 para observar el segmento de datos. 26) Ejecute nuevamente el programa paso a paso y verifique como los datos se van moviendo.

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


6

F i g u r a 1 . Ve n t a n a d e m e m o r i a R a n d o m A c c e s s M e m o r y 27) Digite el segundo programa 28) Emule el programa, pero no lo ejecute.

SEGUNDO PROGRAMA .model small .stack .data BYTE1 DB 0FFh BYTE2 DB 0AAh BYTE3 DB 18h BYTE4 DB 96h .code mov AX,@data mov DS,AX mov DX, 110 ;Mueve en AX la direccion donde esta el ;Mueve el contenido de AX a DS ;Indica a que puerto se enviaran los datos

mov AL, BYTE1 ;carga en AL el dato BYTE1 out DX, AL ;envia el dato en AL al puerto 110

mov AL, BYTE2 ;carga en AL el dato BYTE2 out DX, AL ;envia el dato en AL al puerto 110

mov AL, BYTE3 ;carga en AL el dato BYTE3

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


7
out DX, AL ;envia el dato en AL al puerto 110

mov AL, BYTE4 ;carga en AL el dato BYTE4 out DX, AL FIN: mov ax, 4c00h int 21h end ;fin del programa ;envia el dato en AL al puerto 110

29) En la ventana emulator ubique virtual devices y seleccione la opcin simple.exe. Debe observar una ventana como la que se muestra en la Figura 2. La direccin de este puerto es 110 (decimal) y es de 8 bits.

Figura 2. Dispositivo virtual simple io test. 30) Ejecute paso a paso el programa, verificando que todos los datos son enviados al puerto 110. 31) nase con otra persona para realizar los siguientes pasos. 32) Edite el programa para que el dato que se almacena en DX sea 0378h en lugar de 110. El dato que escribimos es 888 que se almacena en DX como 0378h. 33) Utilizando el cable correcto conecte el puerto paralelo de la computadora a los LEDS ya sea del mdulo IDL-800 Digital Lab o de la tarjeta con switches y leds, de forma que el MSB (etiquetado D7) se conecte con el primer LED a la izquierda y el cable GND con el GND del mdulo o de la tarjeta. 34) Encienda el mdulo Observa algn cdigo binario? Cul? 35) Compile el programa nuevamente, pero en la ventana assembler status presione el botn external y seleccione la opcin debug.exe. Debe observar en una ventana la consola de DOS y el Prompt parpadeando.

8
36) Digite R y presione ENTER. 37) Compare los datos que observa con los que tom en la Tabla 4. N O TA : P a r a e j e c u t a r e l p r o g r a m a p a s o a p a s o d i g i t e P . 38) Ejecute las primeras dos instrucciones y compare el resultado con la Tabla 5. 39) Ejecute los siguientes pasos hasta enviar el primer dato. Corresponde el dato que observa en los LEDS con el dato enviado? 40) Ejecute el resto de programa verificando que los datos son enviados correctamente. 41) Pida a su docente de laboratorio que verifique que el programa se ejecuta correctamente. 42) Cierre las ventanas, apague la PC y deje ordenado su puesto de trabajo.

Anlisis de Resultados
1. Cuando complet la Tabla 1 el primer dato declarado era 7Ah y al revisar la memoria encontr tambin 7Ah, pero el segundo dato declarado era 99 y en la memoria no encontr el mismo dato Por qu ocurre eso? R: Porque el dato declarado esta dado en decimal y la maquina lo convierte a hexadecimal. 2. En la Tabla 2 la primera instruccin en lenguaje ensamblador es MOV AX, @DATA pero en las instrucciones desensambladas se representa como MOV AX, 00720 Por qu ocurre eso? R: Porque ese numero representa la direccin de memoria donde se encuentra guardado el dato de @DATA.

3. En la Tabla 2 los datos almacenados en memoria para la primera instruccin son los siguientes: B8, 20 y 07. cmo se relacionan estos cdigos y la lnea de instruccin desensamblada MOV AX, 00720. R:

4. Al comparar la tercera lnea de instruccin MOV AH, BYTE1 con la respectiva lnea desensamblada, se sustituye la palabra BYTE1 por un dato entre corchetes Qu significa este dato? R:

5. En la Tabla 2 la primera lnea de la columna SEGMENTO:DESPLAZAMIENTO contiene 0721:0000 Cmo se relaciona esta informacin con el contenido de CS:IP en la Tabla 4? R: El registro CS se llama registro de segmento de cdigo y se utiliza, en combinacin con el puntero de instruccin IP registro para que apunte a la instruccin que se esta ejecutando (CD:IP). 6. En la Tabla 1 la primera lnea de la columna SEGMENTO:DESPLAZAMIENTO contiene 0720:0000 Cmo se relaciona esta informacin con el contenido de DS:DX en la Tabla 4? R: Tenemos que DS es un registro de segmento y fuera del set tenemos un registro de propsito general DX. 7. Cmo se relaciona la informacin en la Tabla 3 con el contenido de SS:SP en la Tabla 4. 8. En el segundo programa por qu necesit cargar el dato 110 en el registro DX para enviar datos al puerto? R: Para verificar que todos los datos son transferidos al microprocesador. 9. Cuando modific el segundo programa por qu fue necesario cambiar el dato en DX de 110 a 0378h? 10. Dibuje un mapa de memoria del micro 8086 tanto en forma absoluta como en SEGMENTO:DESPLAZAMIENTO. Inicie el mapa en la direccin 00000h (0000:0000h) hasta la 0FFFFFh (FFFF:FFFFh) y en el mapa ubique cada uno de los segmentos del primer programa.

Investigacin Complementaria
1) Esta actividad debe desarrollarse posteriormente a la ejecucin de la gua de laboratorio y tiene por objetivo complementar y ampliar la temtica desarrollada teniendo en mente las actividades futuras. 2) Investigue: Qu son los modos de direccionamiento? Cuntos y cules modos de direccionamiento tiene el microprocesador 8086? Qu modos de direccionamiento poseen las instrucciones MOV y OUT?

Bibliografa
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486. 3 edicin Prentice Hall, Mxico DF, 1997 Biblioteca

Arquitectura, programacin e interfaces, UDB 001.6404 B847 1997