Microprocesadores - Guia de Laboratorio 02

March 18, 2018 | Author: Mark Gonzales | Category: Computer Program, Bit, Assembly Language, Microprocessor, Computer Memory


Comments



Description

UNTECS - 2012 IMICROPROCESADORES 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 EPROM 2 x 62256 2 x 27256 64 KB 64 KB (alimentado con batería) 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 Expansión No asignado, libre Programas de usuario Tabla de vectores de interrupción ROM ROM RAM o ROM RAM 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 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 8251 8259 8253 8279 74LS373 DAC 0808 ADC 0809 Interfaz paralela, 3 puertos de 8 bits Controlador de comunicación 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 micrófono, 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 Guía de laboratorio Pág. 2 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 Números negativos 0 a 65535 -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) Puerto 112 (70h) Lectura y escritura Lectura y escritura Guía de laboratorio Pág. 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 más torque) 110 011 101 Guía de laboratorio Pág. 4 UNTECS - 2012 I MICROPROCESADORES TERMOMETRO Y CALEFACTOR Este 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) 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. Guía de laboratorio Pág. 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 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 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 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 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) b) c) La ventana de emulación propiamente (Ventana emulator) La ventana de código fuente (Ventana original source code) 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 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 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 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 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 símbolo o etiquetas empleados en el programa. LISTING Muestra 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 CODE Muestra una pantalla similar a la ventana en la cual se editó el código fuente. OPTIONS Permite 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 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
Copyright © 2024 DOKUMEN.SITE Inc.