ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II Septiembre-2009 Laboratorio de Estructura y Tecnología de Computadores.

Slides:



Advertisements
Presentaciones similares
Introducción Principios del Software E/S Principios del Hardware E/S
Advertisements

Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Arquitectura de computadoras
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
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.
Introducción a la Programación
Introducción al software
Ordenador, computadora P.C. Conceptos.
TASM: Ensamblador Se le llama ensamblador no sólo al lenguaje; sino también al programa que traduce el código fuente escrito en ensamblador, a código objeto,
Programación en Lenguaje Ensamblador.
Componentes básicos del ordenador
LOGICA DE NEGOCIOS ADAN GONZALEZ BARRERA.
Composición Interna de un Procesador
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
Arquitectura del Computador
TRADUCTOR DE UN PROGRAMA
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
MODOS DE DIRECCIONAMIENTO
Microcontroladores PIC16F84A.
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Introducción a la Ingeniería en Sistemas
Es el término resultante de la contracción de los vocablos INFORmación y autoMÁTICA. Se define como el conjunto de conocimientos científicos y técnicos.
Visualizador de señales digitales SDLC++ José Domingo Álvarez Hervás.
Windows XP Windows XP (cuyo nombre en clave inicial fue Whistler) fue hecho público el 25 de octubre de 2001 por Microsoft. Microsoft inicialmente sacó.
Unidad 7 Entrada/Salida
UNIDAD 2:Crear, abrir y cerrar una base de datos Hacer clic sobre la opción Nuevo de la pestaña Archivo. Se mostrarán las distintas opciones para nuevos.
Función Estructura y composición Tipos
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Desarrollo de aplicaciones para ambientes distribuidos
Microprocesador (80X86) Universidad Nacional de Ingeniería
Tema 1: DATOS Y REGISTROS
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
M.C. Juan Carlos Olivares Rojas
¿Qué unidades conforman el procesador?

Nombre: Cristian Achina Curso: 4to «A» Fecha:
introducción al Lenguaje Ensamblador
Integrantes: Miriam Pastrana Brito376401ITE 5to semestre Víctor Manuel Rodríguez Bahena378087IMT 5to semestre Erendira Victoria Sánchez Montes de Oca ITE.
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Modos de Direccionamiento  No. 18  8:00-9:00am  Lenguaje ensamblador.
Módulo LCD Controlador HD44780.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
PARTES INTERNAS DEL COMPUTADOR
Universidad Metropolitana Introducción a la Computación
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
NOCIONES BÁSICAS COMPUTO II
Paso 1 Introducimos el CD de instalación de Windows XP en la unidad de CD- ROM. Reiniciamos el PC y tenemos que configurar la BIOS para que el ordenador.
introducción al Lenguaje Ensamblador
Software.
Computadora Es una máquina electrónica que recibe y procesa datos para convertirlos en información útil. Una computadora es una colección de circuitos.
1.2 Requerimientos de instalación > >
CONTENIDO 2: HARDWARE Y SOFTWARE
Elementos y tipos de sistemas operativos
M E N U I N I C I A L PARTES PC PERIFERICOS C P U SOFTWARE 1 johnbonilla.es.tl.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
Sistemas Operativos Universidad Politécnica Territorial de Mérida
ARQUITECTURA DEL ORDENADOR
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
LOS COMPONENTES DEL ORDENADOR
INVESTIGACION DE TEMARIO JOSE LUIS VEGA MERINO.  1.2. Requerimientos de instalación.  Microsoft Windows 7 Professional y Microsoft Windows 7 Ultimate.
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura básica de la computadora
CONIMEIRA XVI Bootloaders para microcontroladores PIC de Microchip Presentan: Ing. Ricardo Guadrón Tec. Juan José Guevara Escuela Especializada en Ingeniería.
Realizado por Lucia y Florencia.  Es el conjunto de programas encargado de la gestión interna de la computadora, controla el funcionamiento del hardware.
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
Transcripción de la presentación:

ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II Septiembre-2009 Laboratorio de Estructura y Tecnología de Computadores Proyecto Piano

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 Septiembre-2009

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 Septiembre-2009 Onda sonora Señal Eléctrica conectada al altavoz PC

ETC-II APM-Octubre-2007 Escala musical temperada 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

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 Septiembre-2009 Teclado Electrónico Práctica 2 Práctica 1 Mandamos la nota Servicios Int 61H Mandamos la nota

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 ‘sonido.com’ que se encargará de reproducir las notas por el altavoz. Este driver se proporcionará a los alumnos. Septiembre-2009

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… Septiembre-2009

ETC-II APM-Octubre-2007 Práctica 1 Ejemplo Septiembre-2009 Estado nota Lo gestiona el simulador pero lo lee el programa Driver en memoria

ETC-II APM-Octubre-2007 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 Septiembre-2009

ETC-II APM-Octubre-2007 Práctica 1: Estructura Driver Septiembre Se accede mediante interrupción software: INT61H 2.Nos ofrece servicios, seleccionables por 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

ETC-II APM-Octubre-2007 Práctica 1: Servicios del Driver 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

ETC-II APM-Octubre-2007 Práctica 1: Comprobación Driver Septiembre-2009 Offset Segmento Int #0 Int #1 Int #61H 2 bytes H 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

ETC-II APM-Octubre-2007 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: 1.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. 2.Las funciones que queramos exportar o hacer visibles se declaran como PUBLIC en el archivo fuente de la librería. 3.Los programas que quieran llamar a esas funciones las tendrán que declarar como EXTERN 4.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. Septiembre-2009

ETC-II APM-Octubre-2007 Ejemplo de libreria Septiembre-2009 GetKey es accesible el resto no No hay punto de entrada Solo segmento de código

ETC-II APM-Octubre-2007 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. Septiembre-2009

ETC-II APM-Octubre-2007 Ejemplo de libreria Septiembre-2009 Programa.asm Indico función externa Llamada a la función. Cómo si fuese una interna

ETC-II APM-Octubre-2007 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

ETC-II APM-Octubre-2007 # Ejemplo de fichero Makefile all: drvmio.com test.exe drvmio.com: drvmio.obj TLINK /t /v drvmio.obj test.exe: test.obj teclado.lib TLINK /V test.obj teclado.lib.asm.obj: TASM /zi $<.obj.lib: TLIB $&.lib -+$< clean: del *.obj del *.map del *.exe del *.lib del *.com Makefiles Si ponemos make all se ejecutan todos estos procesos Proyecto 1: drvmio.com Proyecto 2: test.exe Reglas de construcción genéricas Limpieza

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 Septiembre-2009

ETC-II APM-Octubre-2007 Práctica 2: Interrupciones involucradas Septiembre-2009 Interrupción 61h: Driver Acceso a las funciones del driver desde programas externos Interrupción software. No PIC, no EOI, IRET, síncrona. Hay que instalar la interrupción Interrupción 70h: Reloj Tiempo Real (RTC) Cada vez que suene una nota se activará para medir el tiempo que tiene que sonar. Cuando salte ‘n-veces’ la interrupción desactivaremos el sonido. Hay que instalar la interrupción y configurar los PIC, los registros A y B del RTC con la interrupción PIE del mismo. Interrupción hardware: PIC, EOI, IRET, asíncrona Interrupción 1Ch: Generada por el TMR (INT 08h) Se llama 18.2/seg y nos servirá para hacer efecto gráfico. Se configura al instalar el driver, y se desactiva al desinstalar el driver. Hay que instalar la interrupción. Pseudo-software: No PIC, no EOI, IRET, asíncrona

ETC-II APM-Octubre-2007 Práctica 2: Estructura Driver Septiembre Se accede mediante interrupción software: INT61H 2.Nos ofrece servicios, seleccionables por registro AH 3.Resto de registro para paso de parámetros 1.Configura vectores interrupción 2.Deja parte residente en memoria Estructura Driver Parte 1: Instalación Parte 2: Residente en memoria Palabra de seguridad 0FECAH

ETC-II APM-Octubre-2007 PUSH DS MOV AX,CS MOV DS,AX MOV AX,DATO2 POP DS IRET Práctica 2: Segmento de datos Septiembre-2009 Programa Principal Driver DATO2DATO1 DS CS ES SS 1 MOV AX,DATO1 INT 61h … MOV AX,DATO2 IRET 2 2 3

ETC-II APM-Octubre-2007 Práctica 2: El Temporizador (TMR 8253) Septiembre-2009 El Chip 8253 contiene tres temporizadores de 16-bits Lo vamos a usar para generar sonidos. Registros internos (Accesibles directamente en los puertos siguientes): 40h : Contador 0 -> controla el reloj sistema -> INT8 -> INT 1Ch 41h : Contador 1-> Refresco memoria RAM 42h : Contador 2 -> Generación de tonos en el altavoz 43h : Registro de control Se accede a ellos mediante las instrucciones IN/OUT Amplificador y Filtro Puerto 61h Hz (INT 1CH) Puerto 42h

ETC-II APM-Octubre-2007 Práctica 2: Temporizador Registro de Control Septiembre-2009 SC1..SC0: Seleccionan el contador que vamos a configurar 0 0 : Contador : Contador : Contador : Sin uso RL1..RL0: Modo de acceso a los contadores 0 0 : Captura de la cuenta en un latch (leer sin para contador) 0 1 : Leer/Escribir el byte más significativo 1 0 : Leer/Escribir el byte menos significativo 1 1 : Leer/Escribir ambos bytes (primero menos significativo) M2..M0: Modo de funcionamiento (x11 -> Aestable, generador de onda cuadrada) BCD: Cuenta en modo BCD SC1SC0RL1RL0M2M1M0BCD

ETC-II APM-Octubre-2007 Práctica 2: Reloj en Tiempo Real (RTC) Septiembre-2009 El Chip MC mantiene la hora del sistema cuando esta apagado Lo vamos a usar para temporizar la duración del sonido. Usaremos su capacidad de generar interrupciones hardware. Tiene 64 registros internos, de los cuales nosotros vamos a usar: Registro A (Dirección 10): Configuración general (Frecuencia) Frec. Osc. = khz Registro B (Dirección 11): Configuración interrupciones (PIE). PIE=1, SQWE=0 Registro C (Dirección 12): Estado (PIE). Con leer se borran los flags. El acceso a sus registros internos se hace indirectamente a través del puerto 70h y 71h mediante instrucciones IN/OUT. Para realizar lectura: Se escribe (OUT) en el puerto 70h la dirección de la posición que se desea leer. Se realiza una lectura en el puerto 71h. Para realizar una escritura Se escribe (OUT) en el puerto 70h la dirección de la posición que se desea escribir Se escribe (OUT) en el puerto 71h el dato que se quiere escribir

ETC-II APM-Octubre-2007 Práctica 2: Controlador Interrupciones (PIC) Septiembre-2009 Direcciones del PIC-0 (maestro): 20h y 21h Direcciones del PIC-1 (esclavo): A0h y A1h Interrupciones PIC-0: 08h (IR0), 09h (IR1)…0Fh (IR7) Interrupciones PIC-1: 70h (IR8), 71h (IR9)…7Fh (IR15)

ETC-II APM-Octubre-2007 Práctica 2: Controlador Interrupciones (PIC) Septiembre-2009 El RTC genera la interrupción 70h que proviene del PIC-esclavo. Para poderla recibir tenemos que configurar el PIC maestro y el esclavo. Para indicar que hemos recibido una interrupción tenemos que mandar EOI no especifico (OCW2 = 020h) al PIC esclavo y maestro. Configuración: PIC Maestro: 21h: Máscara de interrupción (habilitar entrada IR2 – esclavo) 20h: Mandar comandos (EOI no específico OCW2) PIC esclavo: A1h: Máscara de interrupción (habilitar entrada IR0 – RTC) A0h: Mandar comandos (EOI no específico OCW2) Ejemplo: IN AL, 021h ; Leo máscara interrupción del PIC maestro AND AL, 0FBh ; Pongo a cero (habilito) entrada del PIC esclavo OUT 020h,AL ; Guardo el valor en la máscara

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 Septiembre-2009