Sie sind auf Seite 1von 7

Gua

Facultad: Ingeniera. Escuela: Electrnica Asignatura: Microprocesadores

El EMU8086 Y El Microprocesador 8086

Objetivo General
Utilizar el programa emulador EMU8086 y relacionarlo con los elementos bsicos que conforman el modelo de programacin del microprocesador 8086.

Objetivos especficos
Identificar los registros del modelo de programacin del 8086. Observar la relacin que existe entre los lenguajes de ensamblador y mquina. Reconocer de forma intuitiva los modos de direccionamiento bsicos del micro 8086. Conocer la herramienta de puertos virtuales que posee el EMU8086.

Materiales y equipos
Computadora PC con el programa EMU8086

Procedimiento

1) Ejecute el emulador 8086. 2) Ahora analice el siguiente cdigo fuente (llamado PRIMER PROGRAMA), ayudndose de los comentarios y del diagrama de flujo que lo acompaa. Intente predecir cada cambio que tendrn los datos hexadecimales en los registros del microprocesador.

Gua

PRIMER PROGRAMA
INICIO

AH = 7Ah BL = 99 CL = 11001111b

.model small .stack .data .code mov AX,@data ;carga en ds la direccin donde esta el mov ds,ax ;segmento de datos mov AH, 7Ah mov BL, 99 mov CL, 11001111b ;carga AH con 7Ah ;carga BL con 99 ;carga CL con 11001111b

AX = 100 BX = A CX = 0ABCDh DX = 6540

FIN

mov AX, 100 mov BX, 'A' mov CX, 0ABCDh mov DX, 6540 mov ax, 4c00h int 21h end

;carga AX con 100 ;carga BX con carcter A ;carga CX con ABCDh ;carga DX, con 6540 ;fin del programa

3) Digite el cdigo en el editor del EMU8086. 4) Guarde el archivo con el nombre que desee en la carpeta My Source que tiene por defecto el EMU8086. 5) Usando el botn respectivo compile el cdigo fuente y gurdelo. 6) Si no se dan errores de compilacin proceda a emular el programa. 7) Copie los datos almacenados en los registros antes de ejecutar el programa: AX: CS: BP: DI: BX: DS: IP: SI: CX: ES: SP DX: SS:

8)

Ejecute el programa totalmente (RUN) y anote los datos resultantes. Verifique si concuerdan con los datos que usted esperaba. BX: DS: IP: SI: CX: ES: SP DX: SS:

AX: CS: BP: DI:

Gua

9)

Ejecute solo la primera instruccin (Single step). Observe los cambios (sobre todo en CS e IP) se carg el dato esperado en AH?

10) Contine ejecutando paso a paso el programa hasta la instruccin final, al mismo tiempo llene los espacios vacos de la TABLA 1. Si tiene dudas en esta actividad, por favor solicite la asistencia de su docente de laboratorio.. 11) Contine ejecutando las instrucciones hasta concluir el programa. DIRECCIONES SEGM(CS) 0720 OFFSET 0005 LENGUAJE DE MQUINA CAMPOS B4 7A LENGUAJE ENSAMBLADOR LINEA AH, 7A BL, 99 CL, 11001111b AX, 100 BX, 78 CX, 0ABCDh DX, 6540
un procedimiento

mov mov mov mov mov mov mov

NOTA: A partir de este punto el predeterminado llamado Interrupcin.

programa

ejecuta

0720 0720

0017 001A TABLA 1

mov ax, 4c00h int 21h

12) Cierre la ventana del emulador, pero no cierre la ventana del cdigo fuente. 13) Cree un archivo nuevo y escriba el cdigo llamado SEGUNDO PROGRAMA, despus de su respectivo encabezado, no olvide los tabuladores. SEGUNDO PROGRAMA .model small .stack .data .code MOV AX,@data MOV DS,AX MOV DX, 0112h ; Carga dato inmediato en DX MOV BX, DX ; Copia DX en BX, movimiento entre ;registros MOV AL, 'A' ; Almacena carcter en AL MOV AH, 61h ; Guarda dato en AH MOV [BX], AH ; Almacena en direccion indicada por ; DS:BX, indirecto MOV [BX+1], AL ; Almacena dato relativo a base: ; DS:BX+1 MOV CX, [BX] ; Copia el dato de la direccion en CX ;registro, indirecto mov ax, 4c00h ;fin del programa int 21h end

Gua

14) Emule el programa y antes de ejecutarlo anote en la TABLA 2 el contenido de CX y el contenido de las direcciones que tienen desplazamiento 0112h y 0113h, dando clic en view y luego en memory y ubicando la direcciones de DS:desplazamiento.

15) Corra paso a paso el programa hasta antes de ejecutar la quinta instruccin, tratando de predecir las acciones que se realizarn, auxilindose de los comentarios de cada instruccin. 16) Observe y anote en la TABLA 2 los resultados de su observacin 17) Ejecute la quinta instruccin, anote los resultados. 18) Ejecute paso a paso el resto de instrucciones, tomando nota de los resultados. SEG (DS) OFFSET Inicio del programa Antes de 5 instr. Despus de 5 instr. Despus de 6 instr. Despus de 7 instr.

0112h 0113h REGISTRO CX TABLA 2

19) Cierre la ventana del emulador, pero no cierre la ventana del cdigo fuente. 20) Digite el cdigo llamado TERCER PROGRAMA. 21) Emule el programa, luego de un clic en virtual devices y luego en simple.exe para tener acceso a los puertos I/O virtuales que tiene el EMU8086, aparecer la ventana de la figura 1. En ella hay dos puertos disponibles, el de la direccin 110 que es de un byte y el de la direccin 112 de una palabra (dos bytes).

Figura 1. 22) Ejecute las tres primeras instrucciones, que sirven para enviar el byte que tiene AL al puerto de la direccin 110, ver figura 2.

Gua

Figura 2. 23) Ejecute las otras dos instrucciones para mandar la palabra en AX al puerto de la direccin 112. 24) Antes de ejecutar la siguiente instruccin, se escribirn manualmente unos datos a los puertos, para ello digite en la parte de arriba de la ventana simple io test los datos que se muestran en la figura 4, no olvide indicarle que son datos hexadecimales agregndole la h al final, en cuanto los escriba ver que tambin cambian los datos en la parte de abajo.

Figura 4. 25) Ahora ejecute las siguientes dos instrucciones para leer el dato presente en el puerto de la direccin 110, el dato quedar almacenado en AL. 26) Siga con las otras dos instrucciones que esta vez leen el dato presente en el puerto 112 y lo almacenan en AX. 27) Cierre el EMU8086 y apague la computadora.

Gua

TERCER PROGRAMA .model small .stack .data .code mov AX,@data ;carga en ds la direccin donde esta el mov ds,ax ;segmento de datos ;-----------------Escritura de puertos------------------------;---------------------------------------------------------------MOV DX,110 ;Carga la direccion del puerto a escribir ;en DX MOV AL,63H ;Guarda en AL el dato 63H OUT DX,AL ;Escribe el dato 63H en el puerto ;de la direccion 110 MOV DX,112 ;carga la direccion del otro puerto en DX MOV AX,7285H ;ahora almacena 7285H en AX OUT DX,AX ;Escribe el dato 7285H en el puerto ;de la direccion 112 ;------------------Lectura de puertos------------------------;---------------------------------------------------------------MOV DX,110 ;carga la direccion del puerto a leer en DX IN AL,DX ;lee el puerto y guarda el dato en AL MOV DX,112 ;carga la direccion del puerto a leer en DX IN AX,DX ;lee el puerto y guarda el dato en AX mov ax, 4c00h ;fin del programa int 21h end

Anlisis de resultados
a) Primer programa. Al introducir datos en los registros del microprocesador se usan diferentes formatos (bases de numeracin) cuntos y cules son? La sintaxis de la instruccin MOV define tres campos: instruccin, dato1 y dato2. Al moverse los datos cul es la fuente y cual el destino? Al observar la tabla1 se nota que a la misma instruccin MOV se le asignan diferentes cdigos hexadecimales a qu se debe esto? Cul es la funcin que cumple el registro IP dentro del PRIMER PROGRAMA? En la columna OFFSET de la tabla1, stos no se incrementan a una razn constante por qu?

Gua

b) Segundo programa. Al comparar las dos primeras instrucciones qu diferencias hay al ejecutarlas, siendo que las dos son MOV? En las ltimas tres instrucciones se incluyeron corchetes (parntesis cuadrados) en las instrucciones Qu diferencias observ en su ejecucin respecto a las primeras dos instrucciones? Por qu al ejecutar la sptima instruccin los datos se almacenan en CX en ese orden especfico?

Investigacin complementaria
Esta actividad debe desarrollarse posteriormente a la ejecucin de la gua de laboratorio y tiene por objetivo complementar y ampliar la temtica desarrollara teniendo en mente las actividades futuras. Investigue: Qu son los modos de direccionamiento? Cuntos y cules modos de direccionamiento tiene el microprocesador 8086? Qu modos de direccionamiento posee la instruccin MOV? Qu diferencias hay entre las instrucciones XCHG ya la instruccin MOV?

Bibliografa
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486. Arquitectura, programacin e interfaces, 3 edicin Prentice Hall, Mxico DF, 1997 Biblioteca UDB 001.6404 B847 1997

Das könnte Ihnen auch gefallen