Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAlisa Remedios Modificado hace 9 años
1
ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de Computadores Proyecto Piano
2
ETC-II APM-Octubre-2007 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 APM-Septiembre-2009
3
ETC-II APM-Octubre-2007 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 APM-Septiembre-2009 Onda sonora Señal Eléctrica conectada al altavoz PC
4
ETC-II APM-Octubre-2007 Escala musical temperada APM-Septiembre-2009 NotaFrec HzTecla 1DO261,626C 2DO#277,183C# 3RE293,665D 4RE#311,127D# 5MI329,628E 6FA349,228F 7FA#369,994F# 8SOL391,995G 9SOL#415,305G# 10LA440A 11LA#466,164A# 12SI493,883B 13DO523,251 f2f 12 2 Relación entre una nota y la siguiente
5
ETC-II APM-Octubre-2007 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 APM-Septiembre-2009 Teclado Electrónico Práctica 2 Práctica 1 Mandamos la nota Servicios Int 61H Mandamos la nota
6
ETC-II APM-Octubre-2007 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 ‘driver.com’ que se encargará de reproducir las notas por el altavoz. Este driver se proporcionará a los alumnos. APM-Septiembre-2009
7
ETC-II APM-Octubre-2007 Práctica 1 objetivos Práctica 1: Objetivos 1.Detectar instalación correcta del driver: 1.Vector interrupción distinto de cero. 2.Comprobación palabra clave. 3.Comprobación Identificador del driver. 1.Dibujar el teclado (Texto o QVGA) 2.Leer teclas asignadas y mandar orden al simulador 3.Leer el estado del simulador para mostrar el estado del teclado 4.Implementar funciones duración y tono. 5.Usar Makefile y Depurador (TD) Opcional: Melodías pre-seleccionadas Teclado ampliado Sonidos a otras escalas Efectos… APM-Septiembre-2009
8
ETC-II APM-Octubre-2007 Práctica 1 Ejemplo APM-Septiembre-2009 Estado nota Lo gestiona el simulador pero lo lee el programa Driver en memoria
9
ETC-II APM-Octubre-2007 Práctica 1 entregables Práctica 1: Entregables Programa: piano.asm Fichero: Makefile Librerias: Opcionales (VGA/Texto, Teclado, …) Simulador driver.com (INT 61H) Generador Notas musicales Práctica 1 Teclado Electrónico APM-Septiembre-2009
10
ETC-II APM-Octubre-2007 Práctica 1: Estructura Driver APM-Septiembre-2009 1.Se accede mediante interrupción software: INT61H 2.Nos ofrece servicios, seleccionables por el registro AH 3.Resto de registro para paso de parámetros 1.Configura vector 2.Deja parte residente en memoria Estructura Driver Parte 1: Instalación Parte 2: Residente en memoria Palabra de seguridad 0FECAH
11
ETC-II APM-Octubre-2007 Práctica 1: Servicios del Driver APM-Septiembre-2009 Servicios DriverParámetros entradaSalida INT 61HAHALCXSalida Identificación0--- AX = 0EE01H Desinstalar1--- AH = 00H Play Nota2Nota (1..13)---AH = 00H Play Frec3---Frec (*)AH = 00H Stop4--- AH = 00H Duración5 1 rápido 2 normal 3 lento ---AH = 00H Escala6 1 aguda 2 normal 3 grave ---AH = 00H Estado7--- AH = 00H AL = 01 suena AL = 0 no suena
12
ETC-II APM-Octubre-2007 Práctica 1: Comprobación Driver APM-Septiembre-2009 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 0EE01H 1º 2º 3º Comprobamos Servicio Identificación Comprobamos que hay algo en memoria Memoria
13
ETC-II APM-Octubre-2007 Práctica 2 Práctica 2: Diseño driver generador de notas Hacer un driver que use el TMR2 y el RTC para generar un tono a la frecuencia de cada nota musical. Este driver sustituirá al proporcionado en la práctica anterior. Opcional: Que el driver saque sonidos por el puerto paralelo Práctica 2 Driver INT 61H Generador Notas musicales por TMR y RTC Práctica 1 Teclado Electrónico APM-Septiembre-2009
14
ETC-II APM-Octubre-2007 Práctica 3 Práctica 3: Interacción de Ensamblador con el Lenguaje C Hacer un programa en C y una librería intermedia que llame al driver anterior y reproduzca canciones escritas en un fichero. Opcional: Tener un teclado y poder reproducir y guardar canciones. 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 APM-Septiembre-2009
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.