Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Estructura y Tecnología de Computadores




Enviado por Pablo Turmero



Partes: 1, 2


    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



    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

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter