microprocesadores - guia de laboratorio 02

17
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 también 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 grabarán los programas para su ejecución. MEMORIA DEL MTS-86C SRAM 2 x 62256 64 KB (alimentado con batería) EPROM 2 x 27256 64 KB El mapa de memoria se organiza en seis áreas: Area 1 Programa MONITOR ROM Area 2 Programas demostrativos ROM Area 3 Expansión RAM o ROM Area 4 No asignado, libre Area 5 Programas de usuario RAM Area 6 Tabla de vectores de interrupción RAM El desarrollador tiene a su disposición desde 400h hasta FFFFh para Guía de laboratorio Pág. 1

Upload: mark-gonzales

Post on 29-Jul-2015

341 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Microprocesadores - Guia de Laboratorio 02

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 también 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 grabarán los programas para su ejecución.

MEMORIA DEL MTS-86C

SRAM 2 x 62256 64 KB (alimentado con batería)EPROM 2 x 27256 64 KB

El mapa de memoria se organiza en seis áreas:

Area 1 Programa MONITOR ROMArea 2 Programas demostrativos ROMArea 3 Expansión RAM o ROMArea 4 No asignado, libreArea 5 Programas de usuario RAMArea 6 Tabla de vectores de interrupción RAM

El desarrollador tiene a su disposición desde 400h hasta FFFFh para ubicar sus programas de aplicación. Adicionalmente, la tabla de vectores de interrupción está ubicada de 0 a 3FFh.

OBSERVACION

Al cargar un programa en el MTS-86C se debe indicar la dirección de memoria (ver la página 14 de la Guía de Laboratorio 01). Esta dirección de carga debe estar especificada en forma completa con direcciones de segmento y de desplazamiento.

Guía de laboratorio Pág. 1

Page 2: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

Se entiende que el programa MONITOR del MTS-86C no tiene capacidad de gestión 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 Interfaz paralela, 3 puertos de 8 bits

8251 Controlador de comunicación serial RS-232

8259 Controlador de interrupciones

8253 Contador/temporizador

8279 Controlador de teclado y display de 7 segmentos

74LS373 Octal latchs tipo D

DAC 0808 8 bits, 1 canal

ADC 0809 8 bits, 8 canales (entradas provenientes de micrófono, resistor variable, thermistor y fototransistor)

SWITCH 8 bits

LEDs 8 bits

FND Display de 7 segmentos

TECLADO 24 teclas (4 x 6)

DISPLAY LCD, texto 16x2

PARLANTE 2 W, volumen ajustable con VR1

Guía de laboratorio Pág. 2

Page 3: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

Adicionalmente, el emulador EMU8086 dispone de periféricos virtuales que se pueden emplear durante el desarrollo y depuración de programas en una computadora personal. Se detallan a continuación algunos de ellos.

DISPLAY NUMERICO

Puerto 199 (C7h)

Muestra: Números positivos 0 a 65535

Números negativos -32767 a +32767

El puerto puede recibir hasta dos bytes con o sin signo. No requiere ninguna conversión a BCD o 7 segmentos. Los datos son mostrados directamente en cinco dígitos en base 10.

PUERTO DE E/S SIMPLE

Puerto 110 (6Eh) Lectura y escritura

Puerto 112 (70h) Lectura y escritura

Guía de laboratorio Pág. 3

Page 4: Microprocesadores - Guia de Laboratorio 02

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 ° Medio paso = 11.25 °

PASO COMPLETO PASO COMPLETO (con más torque)100 110010 011001 101

MEDIO PASO100110010011001101

Guía de laboratorio Pág. 4

Page 5: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

TERMOMETRO Y CALEFACTOREste dispositivo consta de un termómetro y de un calefactor. El programador puede leer la temperatura y controlar el encendido y apagado del calefactor.

Puerto 125 (7Dh) Lectura, dato de temperatura, un byte

Puerto 127 (7Fh) Escritura, control de encendido ON/OFF del calefactor, un byte

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

Guía de laboratorio Pág. 5

Page 6: Microprocesadores - Guia de Laboratorio 02

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 aplicación 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 ejecución en una PC de escritorio, el sistema operativo inserta un bloque de 256 bytes (100h) a partir de la posición 0. Por ello, todo programa que se desarrolle debe iniciar a partir de la dirección 100h relativos al inicio del segmento de código.

Dado que las aplicaciones que se desarrollen funcionarán sobre los módulos MTS-86C, con un programa monitor (sistema operativo) distinto a los del Microsoft, es posible iniciar los programas desde el primer byte del segmento (dirección 0h).

En programas tipo .COM, el segmento de PILA es definido automáticamente por el ensamblador. No es necesario especificarlos.

03.- Escriba el siguiente programa. El mismo contiene la estructura básica a emplear n los programas sucesivos.

Guía de laboratorio Pág. 6

Page 7: Microprocesadores - Guia de Laboratorio 02

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 visualización de numeración de filas en la página de edición.

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.

Guía de laboratorio Pág. 7

Page 8: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

BASE CONVERTER

Menú, MATH, base converter

07.- Visualice la ventana con códigos y caracteres ASCII.

ASCII CODES

Los códigos se muestran en base 10.

08.- Defina algunas marcas dentro de la página de edición. Acceda luego a las mismas rápidamente.

BOOKMARKS

Menú BOOKMARKS, toggle bookmark

09.- Grabar el programa con el nombre EJEMPLO_01.ASM.

Verifique que el EMU8086 lo direcciona automáticamente a la carpeta por defecto previamente configurada con SET OUTPUT DIRECTORY.

10.- Compilar el programa

Menú ASSEMBLER, compile

Guía de laboratorio Pág. 8

Page 9: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

Si es que no existen errores en el programa fuente, la compilación 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 simultáneo que se pueden ir activando según sea necesario.

Para el programa editado, aparecerán tres ventanas.

a) La ventana de emulación propiamente (Ventana emulator)b) La ventana de código fuente (Ventana original source code)c) Ventanas de los periféricos virtuales configurados para uso (Ventana display)

12.- A continuación ejecutará el programa.

Los comandos para ejecutar el programa se encuentran en la barra de iconos mostrada a continuación. Seleccione SINGLE STEP.

Guía de laboratorio Pág. 9

Page 10: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

El EMU8086 ejecutará una instrucción 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 posición de inicio del programa.

RUN.- Ejecuta el programa en forma continua.

STEP DELAY.- Permite configurar el retardo entre instrucciones para el modo de ejecución 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 ejecución del programa, cada uno con diversas funcionalidades.

STEP OVER.- Ejecución paso a paso tomando como una sola instrucción a los procedimientos o rutinas.

STEP BACK.- Paso a paso en sentido contrario.

STOP ON CONDITION.- Permite fijar un punto de ruptura o detención del programa cuando se cumpla cierta condición.

14.- Presione el comando RELOAD.

Vaya al menú VIEW.

Desde este menú se puede activar la visualización de varias ventanas que muestran el estado del procesador y la memoria conforme se ejecute el programa.

Guía de laboratorio Pág. 10

Page 11: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

15.- A continuación activará algunas de estas ventanas. A la par ejecute el programa paso a paso para ver los resultados de la ejecución de cada instrucción.

LOG AND DEBUG.EXE EMULATION

Muestra una pantalla con los valores de todos los registros al ejecutar cada instrucción. Permite tener un histórico 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.

Guía de laboratorio Pág. 11

Page 12: Microprocesadores - Guia de Laboratorio 02

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 visualización 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.

Guía de laboratorio Pág. 12

Page 13: Microprocesadores - Guia de Laboratorio 02

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 TABLEMuestra los detalles de cada símbolo o etiquetas empleados en el programa.

LISTINGMuestra el listado del programa desarrollado. El listado contiene el código fuente tanto en hexadecimal como en nemónicos (assembler) y las direcciones correspondientes a cada una de estas.

ORIGINAL SOURCE CODEMuestra una pantalla similar a la ventana en la cual se editó el código fuente.

OPTIONSPermite configurar diversos formato de colores y tamaños 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 dirección 0201h el nibble MSB de tal dato; el nibble LSB de la posición 0201h debe ser 0.

PROGRAMA 02

Realizar un programa que coloque en la posición 0202h el número menor de los contenidos en 0200h y 0201h.

Guía de laboratorio Pág. 13

Page 14: Microprocesadores - Guia de Laboratorio 02

UNTECS - 2012 I MICROPROCESADORES

PROGRAMA 03

Sumar dos números binarios de 24 bits y almacenar el resultado a partir de 0206h. Los sumandos están contenidos a partir de 0200h y 0203h.

PROGRAMA 04

Copiar el bloque de memoria que inicia en 0200h hacia la dirección 0300h. El tamaño 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 máximo. Cuando la temperatura llegue al mínimo el calefactor debe encenderse. Defina los límites 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 cuántos bits son 1 en el contenido de memoria de la localidad 0200h. Almacene el resultado en la dirección 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 números 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

Guía de laboratorio Pág. 14