Estructura y Tecnología de Computadores



Monografias.com
Introducción Programar en Ensamblador x86 un Teclado electrónico para MSDOS Objetivos: Aprender a programar el entorno 8086 Aprender a realizar un driver Aprender la interacción con los recursos hardware Aprender la interacción entre C y Lenguaje ensamblador Conocimientos: Programación y depuración 8086 Funcionamiento de interrupciones software Comunicación con programas residentes Timer del PC (interrupción 0x1C , generación de sonidos) RTC Uso de la pila para paso de parámetros
Monografias.com
Introducción Generación de un sonido mediante el altavoz del PC: El altavoz del PC está conectado al bit 1 del Puerto 61H (xxxx-xxox) Cambiando el estado del bit a ciertas frecuencias se produce una señal audible. Según la frecuencia, tenemos un sonido (nota) u otro. Dos opciones: Bucle con espera activa y acceso directo al altavoz Usar el Timer 0 para generar la señal cuadrada automáticamente Onda sonora Señal Eléctrica conectada al altavoz PC
Monografias.com
Escala musical temperada f 2f 12 2 Relación entre una nota y la siguiente
Monografias.com
Estructura Proyecto Driver INT 61H Generador Notas musicales por TMR y RTC Practica 3 Programa en C para leer canciones de fichero Librería en ASM que hace de interfaz entre C y el driver Teclado Electrónico Práctica 2 Práctica 1 Mandamos la nota Servicios Int 61H Mandamos la nota
Monografias.com
Práctica 1 Práctica 1: Diseño del teclado Hacer un programa en ensamblador que dibuja un teclado en la pantalla (modo QVGA / VGA) y que detecta las teclas introducidas por el usuario. Este programa llamará al driver ‘sonido.com’ que se encargará de reproducir las notas por el altavoz. Este driver se proporcionará a los alumnos.
Monografias.com
Práctica 1 objetivos Práctica 1: Objetivos Detectar instalación correcta del driver: Vector interrupción distinto de cero. Comprobación palabra clave. Comprobación Identificador del driver. Dibujar el teclado (Texto o QVGA) Leer teclas asignadas y mandar orden al simulador Leer el estado del simulador para mostrar el estado del teclado Implementar funciones duración y tono. Usar Makefile y Depurador (TD) Opcional: Melodías pre-seleccionadas Teclado ampliado Sonidos a otras escalas Efectos…
Monografias.com
Práctica 1 Ejemplo Estado nota Lo gestiona el simulador pero lo lee el programa Driver en memoria
Monografias.com
Práctica 1 entregables Práctica 1: Entregables Programa: piano.asm Fichero: Makefile Librerias: Opcionales (VGA/Texto , Teclado, …) Simulador Drvmio.com INT 61H Generador Notas musicales Práctica 1 Teclado Electrónico
Monografias.com
Práctica 1: Estructura Driver Se accede mediante interrupción software: INT61H Nos ofrece servicios, seleccionables por registro AH Resto de registro para paso de parámetros Configura vector Deja parte residente en memoria Estructura Driver Parte 1: Instalación Parte 2: Residente en memoria Palabra de seguridad 0FECAH
Monografias.com
Práctica 1: Servicios del Driver
Monografias.com
Práctica 1: Comprobación Driver Offset Segmento Int #0 Int #1 Int #61H 2 bytes 0 2 4 6 184H 186H Tabla Interrupciones 0FECAH +3 IRET Servicios Driver MOV AH, 0 INT 61H CMP AX,0EE01H 1º 2º 3º Comprobamos Servicio Identificación Comprobamos que hay algo en memoria Memoria
Monografias.com
Práctica 1: Librerías Una librería mantiene una estructura muy parecida a la de un programa normal, pero con algunas características especiales: Es un archivo fuente .ASM que generalmente sólo lleva la definición del segmento de código, ya que comparte pila y segmento de datos con el programa principal que llama a las funciones de la misma. Las funciones que queramos exportar o hacer visibles se declaran como PUBLIC en el archivo fuente de la librería. Los programas que quieran llamar a esas funciones las tendrán que declarar como EXTERN Una librería se compila con el TASM primero y una vez obtenido el .OBJ se encapsula en un fichero .LIB mediante el comando TLIB.
Monografias.com
Ejemplo de libreria GetKey es accesible el resto no No hay punto de entrada Solo segmento de código
Monografias.com
Ejemplo de librería: compilación tasm /zi teclado.asm para generar el fichero teclado.obj (suponiendo que el archivo que contiene la libreria se llame teclado.asm) tlib teclado.lib -+teclado.obj para generar el fichero teclado.lib que es la librería encapsulada. El -+ indica re-emplazo, es decir, si dentro del archivo teclado.lib ya existe una función GetKey procede a su reemplazo por la nueva versión. En caso de que no exista la añade directamente. tlink /v program.obj teclado.lib Una vez que se tiene el archivo teclado.lib se podrá compilar cualquier programa que use funciones de la librería.
Monografias.com
Ejemplo de libreria Programa.asm Indico función externa Llamada a la función. Cómo si fuese una interna
Monografias.com
La herramienta make entorno de compilación, nos permite hacer la compilación de un programa más sencilla permitir definir en un fichero una serie de reglas o pasos de compilación para que a partir de una serie de archivos fuente se obtenga el fichero o ficheros ejecutables. Las reglas está contenidas en un fichero que tiene que llamarse Makefile y que será llamado por defecto al ejecutar el comando make. Cuidado, Makefile sin extensión. Un ejemplo sencillo de fichero Makefile es: test.exe: test.obj tlink /v test.obj test.obj: test.asm tasm /zi test.asm clean: del *.obj del test.exe Si tecleamos make clean, nos aseguramos de partir de un punto limpio Makefiles