Sei sulla pagina 1di 14

UNTECS - 2012 I

MICROPROCESADORES

LABORATORIO 02 PROGRAMACION BASICA DEL 8086 USANDO EL EMULADOR EMU8086 V. 4.08

EMU8086 es un emulador del microprocesador 8086. Permite editar, ensamblar, depurar y simular programas. Incluye tambin dispositivos de E/S virtuales. Los programas deben desarrollarse tomando en cuenta el mapa de memoria disponible en el MTS-86C, sistema en el cual finalmente se grabarn los programas para su ejecucin. MEMORIA DEL MTS-86C SRAM EPROM 2 x 62256 2 x 27256 64 KB 64 KB (alimentado con batera)

El mapa de memoria se organiza en seis reas: Area 1 Area 2 Area 3 Area 4 Area 5 Area 6 Programa MONITOR Programas demostrativos Expansin No asignado, libre Programas de usuario Tabla de vectores de interrupcin ROM ROM RAM o ROM RAM RAM

El desarrollador tiene a su disposicin desde 400h hasta FFFFh para ubicar sus programas de aplicacin. Adicionalmente, la tabla de vectores de interrupcin est ubicada de 0 a 3FFh. OBSERVACION Al cargar un programa en el MTS-86C se debe indicar la direccin de memoria (ver la pgina 14 de la Gua de Laboratorio 01). Esta direccin de carga debe estar especificada en forma completa con direcciones de segmento y de desplazamiento.

Gua de laboratorio

Pg. 1

UNTECS - 2012 I

MICROPROCESADORES

Se entiende que el programa MONITOR del MTS-86C no tiene capacidad de gestin de memoria. El usuario debe tener cuidado de indicar una zona de memoria libre, caso contrario puede afectar a otros programas o datos contenidos en la memoria.

Del mismo modo, debe tomarse en cuenta las direcciones de los puertos de E/S del MTS-86C. DISPOSITIVOS DE E/S 8255 8251 8259 8253 8279 74LS373 DAC 0808 ADC 0809 Interfaz paralela, 3 puertos de 8 bits Controlador de comunicacin serial RS-232 Controlador de interrupciones Contador/temporizador Controlador de teclado y display de 7 segmentos Octal latchs tipo D 8 bits, 1 canal 8 bits, 8 canales (entradas provenientes de micrfono, resistor variable, thermistor y fototransistor) 8 bits 8 bits Display de 7 segmentos 24 teclas (4 x 6) LCD, texto 16x2 2 W, volumen ajustable con VR1

SWITCH LEDs FND TECLADO DISPLAY PARLANTE

Gua de laboratorio

Pg. 2

UNTECS - 2012 I

MICROPROCESADORES

Adicionalmente, el emulador EMU8086 dispone de perifricos virtuales que se pueden emplear durante el desarrollo y depuracin de programas en una computadora personal. Se detallan a continuacin algunos de ellos.

DISPLAY NUMERICO Puerto 199 (C7h) Muestra: Nmeros positivos Nmeros negativos 0 a 65535 -32767 a +32767

El puerto puede recibir hasta dos bytes con o sin signo. No requiere ninguna conversin a BCD o 7 segmentos. Los datos son mostrados directamente en cinco dgitos en base 10.

PUERTO DE E/S SIMPLE Puerto 110 (6Eh) Puerto 112 (70h) Lectura y escritura Lectura y escritura

Gua de laboratorio

Pg. 3

UNTECS - 2012 I

MICROPROCESADORES

Las dos primeras cajas de texto son para ingresar datos manualmente a los puertos. Las dos ltimas muestran los datos enviados a estos puertos o contenidos en ellos. Mediante programa se lee o escribe directamente en estas dos ltimas ventanas.

MOTOR DE PASO DE TRES FASES Permite el control de un motor de paso de tres fases. Puerto 7 (07h) Escritura, un byte

Las bobinas se activan con los bits 0, 1 y 2. Este motor de paso virtual puede trabajar en paso completo y en medio paso. Paso completo = 22.5 PASO COMPLETO 100 010 001 MEDIO PASO 100 110 010 011 001 101 Medio paso = 11.25 PASO COMPLETO (con ms torque) 110 011 101

Gua de laboratorio

Pg. 4

UNTECS - 2012 I

MICROPROCESADORES

TERMOMETRO Y CALEFACTOR Este dispositivo consta de un termmetro y de un calefactor. El programador puede leer la temperatura y controlar el encendido y apagado del calefactor. Puerto 125 (7Dh) Puerto 127 (7Fh) Lectura, dato de temperatura, un byte Escritura, control de encendido ON/OFF del calefactor, un byte

Siga los pasos siguientes para escribir y probar su primer programa con el EMU8086.

Gua de laboratorio

Pg. 5

UNTECS - 2012 I

MICROPROCESADORES

01.-

Al iniciar el programa se obtiene la pantalla de inicio mostrada en la figura. Seleccionar new.

02.-

Luego, seleccionar la plantilla correspondiente a una aplicacin de tipo COM. El formato .COM corresponde a un programa con sus segmentos superpuestos en un solo bloque de 64 KB. Solo contiene el programa, junto con datos, y es directamente grabable en la memoria.

Cuando se carga un programa para su ejecucin en una PC de escritorio, el sistema operativo inserta un bloque de 256 bytes (100h) a partir de la posicin 0. Por ello, todo programa que se desarrolle debe iniciar a partir de la direccin 100h relativos al inicio del segmento de cdigo. Dado que las aplicaciones que se desarrollen funcionarn sobre los mdulos MTS-86C, con un programa monitor (sistema operativo) distinto a los del Microsoft, es posible iniciar los programas desde el primer byte del segmento (direccin 0h). En programas tipo .COM, el segmento de PILA es definido automticamente por el ensamblador. No es necesario especificarlos.

03.-

Escriba el siguiente programa. El mismo contiene la estructura bsica a emplear n los programas sucesivos.

Gua de laboratorio

Pg. 6

UNTECS - 2012 I

MICROPROCESADORES

04.-

Configure la carpeta o directorio de trabajo por defecto. SET OUTPUT DIRECTORY Men ASSEMBLER, set output directory

05.-

Active la visualizacin de numeracin de filas en la pgina de edicin. SHOW LINE NUMBERS Men EDIT, advanced, show line number

06.-

Pruebe la herramienta que permite convertir entre los sistemas binario, octal, hexadecimal, decimal con y sin signo y caracteres ASCII.

Gua de laboratorio

Pg. 7

UNTECS - 2012 I

MICROPROCESADORES

BASE CONVERTER Men, MATH, base converter

07.-

Visualice la ventana con cdigos y caracteres ASCII. ASCII CODES Los cdigos se muestran en base 10.

08.-

Defina algunas marcas dentro de la pgina de edicin. Acceda luego a las mismas rpidamente. BOOKMARKS Men BOOKMARKS, toggle bookmark

09.-

Grabar el programa con el nombre EJEMPLO_01.ASM. Verifique que el EMU8086 lo direcciona automticamente a la carpeta por defecto previamente configurada con SET OUTPUT DIRECTORY.

10.-

Compilar el programa Men ASSEMBLER, compile

Gua de laboratorio

Pg. 8

UNTECS - 2012 I

MICROPROCESADORES

Si es que no existen errores en el programa fuente, la compilacin generar un archivo .BIN. Se debe confirmar el nombre y ruta de este archivo, tal como se muestra en la figura previa. 11.Emular el programa

Clic en el ICONO emulate

El emulador dispone de varias ventanas en simultneo que se pueden ir activando segn sea necesario. Para el programa editado, aparecern tres ventanas. a) b) c) La ventana de emulacin propiamente (Ventana emulator) La ventana de cdigo fuente (Ventana original source code) Ventanas de los perifricos virtuales configurados para uso (Ventana display)

12.-

A continuacin ejecutar el programa. Los comandos para ejecutar el programa se encuentran en la barra de iconos mostrada a continuacin. Seleccione SINGLE STEP.

Gua de laboratorio

Pg. 9

UNTECS - 2012 I

MICROPROCESADORES

El EMU8086 ejecutar una instruccin cada vez que se presione el cono SINGLE STEP. 13.Pruebe los comandos RELOAD, RUN y STEP DELAY RELOAD.- Inicializa el puntero de instrucciones a la posicin de inicio del programa. RUN.- Ejecuta el programa en forma continua. STEP DELAY.- Permite configurar el retardo entre instrucciones para el modo de ejecucin continua. Los tiempos de retardo que se pueden configurar son: 0 ms, 1 ms, 100 ms, 200 ms, 300 ms y 400 ms.

OBS. En el MENU debug se encuentran una mayor cantidad de comandos para ejecucin del programa, cada uno con diversas funcionalidades.

STEP OVER.- Ejecucin paso a paso tomando como una sola instruccin a los procedimientos o rutinas. STEP BACK.- Paso a paso en sentido contrario. STOP ON CONDITION.- Permite fijar un punto de ruptura o detencin del programa cuando se cumpla cierta condicin.

14.-

Presione el comando RELOAD. Vaya al men VIEW. Desde este men se puede activar la visualizacin de varias ventanas que muestran el estado del procesador y la memoria conforme se ejecute el programa.

Gua de laboratorio

Pg. 10

UNTECS - 2012 I

MICROPROCESADORES

15.-

A continuacin activar algunas de estas ventanas. A la par ejecute el programa paso a paso para ver los resultados de la ejecucin de cada instruccin.

LOG AND DEBUG.EXE EMULATION Muestra una pantalla con los valores de todos los registros al ejecutar cada instruccin. Permite tener un histrico de los cambios producidos.

EXTENDED VALUE VIEWER Muestra los cambios en cada registro conforme se ejecuta el programa. El contenido del registro seleccionado se muestra en diversos formatos.

Gua de laboratorio

Pg. 11

UNTECS - 2012 I

MICROPROCESADORES

STACK Muestra el contenido de la pila conforme se ejecuta el programa.

VARIABLES Muestra las posiciones de memoria correspondientes a las variables definidas en el programa. Para cada variable se permite editar su valor, modificar el formato de visualizacin y la cantidad de bytes a mostrar.

MEMORY Visualiza el contenido de la memoria en las direcciones que se indiquen. Los datos son mostrados en hexadecimal y como caracteres ASCII.

Gua de laboratorio

Pg. 12

UNTECS - 2012 I

MICROPROCESADORES

FLAGS - LEXICAL FLAG ANALYZER Muestra el contenido de los FLAGs y los valores que deben tener para cumplir ciertas condiciones (lexical flag analyzer).

SYMBOL TABLE Muestra los detalles de cada smbolo o etiquetas empleados en el programa. LISTING Muestra el listado del programa desarrollado. El listado contiene el cdigo fuente tanto en hexadecimal como en nemnicos (assembler) y las direcciones correspondientes a cada una de estas. ORIGINAL SOURCE CODE Muestra una pantalla similar a la ventana en la cual se edit el cdigo fuente. OPTIONS Permite configurar diversos formato de colores y tamaos del entorno de trabajo del EMU8086.

Desarrolle los siguientes programas PROGRAMA 01 El contenido de la localidad de memoria 0200h tiene un dato de 8 bits. Realizar un programa que coloque en la direccin 0201h el nibble MSB de tal dato; el nibble LSB de la posicin 0201h debe ser 0.

PROGRAMA 02 Realizar un programa que coloque en la posicin 0202h el nmero menor de los contenidos en 0200h y 0201h.

Gua de laboratorio

Pg. 13

UNTECS - 2012 I

MICROPROCESADORES

PROGRAMA 03 Sumar dos nmeros binarios de 24 bits y almacenar el resultado a partir de 0206h. Los sumandos estn contenidos a partir de 0200h y 0203h.

PROGRAMA 04 Copiar el bloque de memoria que inicia en 0200h hacia la direccin 0300h. El tamao del bloque es de 100 bytes.

PROGRAMA 05 Realizar un programa que verifique datos de temperatura (puerto de E/S 125 o 7Dh) y apague el calefactor cuando este llegue al mximo. Cuando la temperatura llegue al mnimo el calefactor debe encenderse. Defina los lmites T_MIN t T_MAX.

PROGRAMA 06 Realizar un programa para controlar un motor de paso de tres fases en sus tres formas posibles. El control debe realizarse escribiendo en el puerto 110 (6Eh).

PROGRAMA 07 Determine cuntos bits son 1 en el contenido de memoria de la localidad 0200h. Almacene el resultado en la direccin 0201h.

PROGRAMA 08 Determine la longitud de un mensaje ASCII. Los caracteres son de 7 bits con el octavo bit 0. La cadena de caracteres inicia con STX (02h) y finaliza con ETX (03h). Colocar el resultado en 0200h. No contar STX ni ETX.

PROGRAMA 09 Elabore un programa que permita convertir nmeros BCD empaquetados en BCD desempaquetados.

PROGRAMA 10 Elabore un programa que encienda el motor de paso al sensar una temperatura baja y lo apague al sensar una temperatura alta. Estas temperaturas visualizarlas en display.
Edgard Oporto junio 2012

Gua de laboratorio

Pg. 14

Potrebbero piacerti anche