CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Slides:



Advertisements
Presentaciones similares
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
Advertisements

1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
ULTRASONDO EN RODILLA MENISCOS Y LIGAMENTOS
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Interacción con DOS COMP 3200.
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
Universidad San Martín de Porres
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO de Junio de 2005.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
Interfases Contables en CIO
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 5.- 1ª PARTE. EL A.O. Y SUS APLICACIONES
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Integrantes: Andres Marin Castelblanco Karem Moreno Pacheco Alexandra Ardila.
SIMATICA V2.0. Automatización de Viviendas con Simatic S7-200
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
Pbn © Jaime Alberto Parra Plaza CLASE 19 BIBLIOTECAS Y ARCHIVOS DE INCLUSIÓN.
CLASE 4 EL ENSAMBLADOR.
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Pbn © Jaime Alberto Parra Plaza CLASE 18 TALLER: FUNCIONES.
Pbn © Jaime Alberto Parra Plaza CLASE 14 TALLER: INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA.
1 XML Extensible Markup Language HTML HyperText Markup Language normas06_01.xml.
C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281. C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281 1-Ingrese a menú 2-Ingrese a Mensajes 3-Ingrese a Correo 4-Seleccione.
60 razones para seguir vivo
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
Arquitectura de computadoras
Phone2Wave-Server Manual de Operación.
TELEFONÍA IP.
1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación.
Parte 3. Descripción del código de una función 1.
EL OSO APRENDIZ Y SUS AMIGOS
P ROCESO DE R ECAUDACIÓN SIRI 1. Í NDICE 2 Ventajas del Nuevo Portal SIRIIntroducciónServicios a liberar en el Nuevo Portal SIRIDiferencias en la operación.
50 principios 1. Los clientes asumen el mando.
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
Ecuaciones Cuadráticas
¡Primero mira fijo a la bruja!
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
INTRODUCCIÓN A LA PROGRAMACIÓN
Windows XP sp3.
Programación en Lenguaje Ensamblador.
Pasos Para Instalar Windows XP
0 1 ¿Qué hora es? By: Craig Tillmann Revised by: Malinda Seger Coppell High School Coppell, TX.
Bloque I Informática Básica.
Módulo 2: Condiciones Generales de Trabajo
Introducción al lenguaje R Sesión 2: Objetos en R
MSc. Lucía Osuna Wendehake
SUCESIONES Y PROGRESIONES.
Estructuras de control
Manual de Procedimientos Procedimiento de ejecución del programa de
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Arquitectura del Computador
Introducción al lenguaje ensamblador
Informática Ingeniería en Electrónica y Automática Industrial
SEMANA 9_3.
PBN © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS.
Microprocesador (80X86) Universidad Nacional de Ingeniería
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
 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,
Driver o controlador para la pc.
Arquitectura de Computadores
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
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.
Transcripción de la presentación:

CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

TEMA 1 INTERRUPCIONES

El microprocesador provee un mecanismo para que la comunicación con los periféricos sean fácil de implementar, éste es el de las interrupciones. Puede decirse que un uP cuando está activo estará en una de dos situaciones: Ejecutando el programa actual Atendiendo una interrupción

Una instrucción de interrupción, en su forma más simple, permite llamar una subrutina. Estas subrutinas han sido implementadas para darle al usuario la capacidad de interactuar con los servicios disponibles en la BIOS o en la parte interna del sistema operativo, ya sea para comunicarse con los periféricos o para manejar el sistema de archivos. 2

La dirección de inicio de las subrutinas se almacena en una tabla al comienzo de la RAM (tabla de vectores de interrupción), la cual es accesible a cualquier programa. La subrutina que es invocada se conoce como servicio de interrupción. La sintaxis de la orden es: INT n donde n es un número entre 0 y 255.

Detectar la instrucción Guardar IP, CS y banderas en la pila Cuando aparece esta orden, el uP realiza la siguiente secuencia de pasos: Detectar la instrucción Guardar IP, CS y banderas en la pila Multiplicar el número de int. por 4 Cargar CS e IP con los nuevos valores Ejecutar el código en la nueva dirección Continuar ejecutando hasta llegar a IRET Retraer de la pila IP, CS y banderas Continuar el programa anterior 3

1. DETECTAR LA INSTRUCCIÓN: CS IP INT 7 Segmento de código actual uP MEMORIA

2. GUARDAR IP, CS Y BANDERAS EN LA PILA: uP CS IP Flags MEMORIA Pila

3. MULTIPLICAR n POR 4: p n * 4 Para el ejemplo: p 7 * 4 p 28

4. CARGAR CS E IP CON LOS VALORES APUNTADOS POR p: IP 0 : [ p ] CS 0 : [ p + 2 ] Estos valores son el segmento y el desplazamiento del servicio a la interrupción y se llaman vectores de interrupción.

MEMORIA uP IP CS 28 29 30 31 primer Kilobyte

5. EJECUTAR EL CÓDIGO QUE INDICA LA NUEVA DIRECCIÓN: MEMORIA uP 1a. instrucción nuevo segmento de Código CS IP IRET última instrucción

6. CONTINUAR EJECUTANDO EL SERVICIO HASTA HALLAR LA ORDEN IRET (RETORNAR DE INTERRUPCIÓN): MEMORIA uP CS IP IRET

7.EXTRAER DE LA PILA LOS ANTIGUOS VALORES DE CS, IP Y BANDERAS: Flags uP MEMORIA Pila

8. CONTINUAR LA EJECUCIÓN DEL PROGRAMA ANTERIOR: MEMORIA uP Segmento de Código actual CS INT 7 IP

El sistema operativo MS-DOS se compone de una serie de miniprogramas, que dan soporte al manejo de recursos físicos y de recursos lógicos. Todo el sistema operativo está hecho en assembly puro y llano, igual al que se usa para crear programas de usuario. La estructura del DOS es:

Manejadores de Dispositivos Estándares COMMAND. COM Manejadores de Dispositivos Estándares MSDOS. SYS IO.SYS y BIOS

INTÉRPRETE DE COMANDOS (COMMAND.COM) Interacciona con el usuario y traduce las órdenes que éste ingresa en llamados a los programas que realizan esas tareas.

MANEJADORES DE DISPOSITIVOS ESTÁNDARES Traducen órdenes de alto nivel en comandos para los periféricos. Estas rutinas pueden ser invocadas por el Intérprete de Órdenes o por un programa de usuario.

MANEJADORES DE RECURSOS LÓGICOS (MSDOS.SYS) Funciones para manejo de archivos y de directorios. Traducen órdenes abstractas como abrir archivo o cambiar directorio a las órdenes físicas que hacen tales labores.

DRIVERS DE RECURSOS FÍSICOS (IO.SYS) Funciones y Servicios para manejo de periféricos a nivel físico. Estas rutinas, que actúan en coordinación con las rutinas de la ROM-BIOS, se entienden con los periféricos a nivel hardware.

Cuando el sistema se inicializa, se cargan las funciones de MSDOS Cuando el sistema se inicializa, se cargan las funciones de MSDOS.SYS e IO.SYS desde disco y se llena la tabla de vectores de interrupción con las direcciones de cada función. Estas funciones usualmente están en la ROM BIOS o, si son actualizaciones, en el IO.SYS. Pueden incluso estar en la memoria convencional, si el usuario ha decidido remplazar la función de atención nativa por una creada por él o por un proveedor.

Ejemplos de funciones disponibles: Soporte Lógico: Crear directorio Abrir archivo Leer archivo, etc. Soporte Físico: Inicializar impresora Mover cursor Cambiar modo de pantalla Leer teclado Escribir vídeo, etc.

Tanto las funciones DOS (de MSDOS. SYS) como las funciones BIOS (de IO Tanto las funciones DOS (de MSDOS.SYS) como las funciones BIOS (de IO.SYS) se invocan con números de interrupción. Es natural que las funciones DOS sean de “más alto nivel”, pues no se relacionan directamente con el hardware, como sí lo hacen las interrupciones BIOS. Prácticamente, casi todas las funciones DOS están incluídas en una sola interrupción, la INT 21H, cada función se discrimina dando el número de la función.

El esquema típico de llamado es: MOV AH, nf ; nf es el número de función a solicitar ; llenar, eventualmente, otros registros con ; información necesaria para la función INT 21H ; invocar los servicios DOS ; recoger, si corresponde, valores ; retornados por la función en registros ; específicos

TEMA 2 INTERRUPCIONES DE ENTRADA / SALIDA (E/S)

De todos los servicios, aquéllos que son indispensables para crear programas de cierta utilidad, son los que permiten interactuar con un usuario, es decir, los servicios de entrada de información por teclado y los servicios de salida de información por vídeo. Cada servicio de interrupción será explicado siguiendo el siguiente formato:

función: un nombre significativo, preferiblemente el nombre de la función equivalente en lenguaje C, si existe. propósito: explica qué hace la función. entrada: muestra qué parámetros recibe la función y en qué registros deben colocarse.

salida: indica qué valor(es) retorna la función y en qué registros quedan ubicados. observación: campo opcional, que se coloca cuando se requiera dar una explicación más amplia sobre alguno de los campos anteriores. ejemplo: código que muestra cómo usar la función.

INTERRUPCIONES DE ENTRADA: Las funciones básicas con la entrada estándar (teclado) son: 1. Indagar si se ha pulsado alguna tecla 2. Leer una tecla sin mostrarla en pantalla 3. Leer una tecla mostrándola en pantalla Antes de ver estas funciones, es conveniente aclarar unos aspectos sobre el teclado:

TECLAS Y CÓDIGOS: El teclado original del IBM poseía sólo las teclas para edición básica: a. Letras: a, b, c, ........, y, z. b. Números: 0, 1, ......, 8, 9. c. Signos de puntuación: , ; . : !, etc. d. Teclas de edición: TAB, ENTER, ESCAPE, BackSpace, etc.

Cada una de estas teclas puede asociarse con un código ASCII entre 1 y 255 (no se usan todos) y casi todas tienen un símbolo asociado que puede escribirse en pantalla. A este teclado se le llama estándar y a las teclas que en él están se les llama normales.

Los teclados actuales poseen teclas adicionales: a. De función: F1, F2, etc. b. De movimiento del cursor: , , HOME, PgUp, etc. c. De combinación: CTRL-tecla, ALT-tecla.

A este teclado se le llama extendido y a las teclas adicionales se les llama especiales. Para diferenciar las teclas especiales de las normales, se les asigna a aquéllas un código de 2 bytes: El primero siempre es el carácter NULO (ASCII 0) y el segundo es el código de la tecla. Estas teclas por lo general no tienen un símbolo asociado, así que cuando se intenta imprimir en pantalla no siempre se obtiene un símbolo significativo.

INTERRUPCIONES PARA ENTRADA BÁSICA: 1. DETECTAR ESTADO DEL TECLADO: Función: kbhit() Propósito: Detectar si una tecla ha sido pulsada Entrada: AH = 0BH Salida: AL = FFH si hay carácter disponible, AL = 00H si no hay.

Ejemplo:. WAIT:. MOV. AH, 0BH. INT. 21H IF23:. CMP. AL, 0FFH Ejemplo: WAIT: MOV AH, 0BH INT 21H IF23: CMP AL, 0FFH ; hay tecla pulsada? JE KEYPRESSED ; si: procesarla JMP WAIT ; no: esperar

2. LEER TECLA SIN HACER ECO: Función: getch() Propósito: Leer una tecla sin hacer eco a la pantalla (sin mostrarla) Entrada: AH = 08H Salida: AL = carácter leído Observación: Si el carácter leído es 0, indica un carácter especial, en este caso debe invocarse el servicio nuevamente para obtener el código de la tecla especial.

Ejemplo: WAIT_ESC: MOV AH, 08H INT 21H IF14: CMP AL, 27 ; ¿pulsada ESC? JE BYE ; si: terminar JMP WAIT_ESC ; no: esperar

3. LEER TECLA HACIENDO ECO A LA PANTALLA: Función: getche() Propósito: Leer una tecla haciendo eco a la pantalla (mostrándola) Entrada: AH = 01H Salida: AL = carácter leído Observaciones: Igual que getch().

Ejemplo: MOV AH, 01H INT 21H CMP AL, 00H ; ¿es especial? JNE NORMAL_KEY MOV AH, 01H ; sí es especial, ... INT 21H ; ... leer el código MOV tecla, AL MOV tipo, ‘E’ ; < sigue >

; < viene > JMP CONTINUE NORMAL_KEY: MOV tecla, AL MOV tipo, ‘N’ CONTINUE:

INTERRUPCIONES PARA SALIDA BÁSICA: 1. ESCRIBIR UN CARACTER EN PANTALLA: Función: putch() Propósito: Escribir un carácter ASCII en la pantalla Entrada: AH = 02H, DL = carácter a escribir Salida: Ninguna.

Ejemplo: MOV DL, ‘A’ MOV AH, 02H INT 21H ; escribir la letra A

MANEJO DE CADENAS: La interrupción 21H posee servicios tanto para leer cadena (funciones 0AH y 3FH) como para escribir cadena (funciones 09H y 40H). Sin embargo, el instructor desaprueba su uso, puesto que precisan que las cadenas estén en un formato que es incompatible con los estándares para manejo de cadenas.

CADENAS ASCIIZ: Dado que una cadena es una sucesión de caracteres, se precisa, para su adecuado manejo, saber dos cosas: El código en que se representan los caracteres El número de caracteres que forman la cadena

El estándar que usan la mayoría de computadores y de sistemas para representar cadenas es el llamado ASCIIZ cuyo nombre indica que: Los caracteres se representan usando el código ASCII La longitud de la cadena es desconocida, pero se sabe que termina con el carácter ASCII 0 o carácter NULO

Para manipular cadenas, se utilizarán dos funciones implementadas por el instructor (explicadas en detalle posteriormente). Este enfoque ofrece dos ventajas: Se comprende que, cuando el sistema operativo no ofrece un servicio que se requiere, puede crearse a partir de los que si ofrece Es un excelente ejemplo para aprender a implementar funciones

FUNCIONES GETS Y PUTS: Se han implementado dos macros que permiten leer (gets) o escribir (puts) una cadena. Gets lee una sucesión de caracteres y le añade un terminador NULO. Puts escribe en pantalla una cadena que sea terminada por ASCII 0.

LEER UNA CADENA: Función: gets max, cadena Propósito: Leer caracteres desde el teclado hasta que se presione ENTER o hasta que se lean max caracteres Entrada: max: máximo número de caracteres a leer (hasta 255) cadena: puntero a un buffer en memoria donde se alojará la cadena leída Salida: Ninguna.

Ejemplo: Respuesta DB 50 DUP (?) ; buffer para guardar la cadena ... ... Gets 49, Respuesta ; dar el máximo de caracteres permitidos, ... ; ... se debe dejar un byte libre para el final ... ; ... de cadena

ESCRIBIR UNA CADENA: Función: puts cadena Propósito: Escribir los caracteres de cadena en pantalla hasta encontrar un carácter ASCII 0 Entrada: cadena: puntero a un buffer en memoria donde reside la cadena a escribir Salida: Ninguna.

Ejemplo: Mensaje DB “¡Hola mundo!”, 0 ; cadena a escribir (¡recordar el terminador!) ... ... Puts Mensaje ; interactuar con el mundo real

INTERRUPCIONES HARDWARE Lo descrito hasta ahora corresponde a las llamadas interrupciones software, nombre que indica que los servicios se invocan desde dentro de un programa. Existen también las interrupciones hardware en donde la petición de servicio se hace desde fuera del microprocesador, ya sea desde un periférico o un chip de soporte.

A grandes rasgos, para activar una interrupción por hardware, se debe colocar un valor binario 0 en una entrada de control del uP llamada también INT. Cada vez que el uP realiza una instrucción, consulta el estado de esta línea y, si está en 0, procede a entrar en un estado llamado atención a interrupción hardware.

En este estado se realiza un intercambio de información entre el uP y el elemento que solicita el servicio (SR), siendo un proceso en el cual intervienen activamente entidades hardware y software. Para que la comunicación tenga éxito, ambas partes deben estar de acuerdo en comunicarse siguiendo un protocolo común:

ATENCIÓN A UNA INT. HARDWARE: El SR activa el pin INT El uP termina de ejecutar la instrucción actual y consulta el pin INT Como el pin INT está activado procede a responder activando el pin INTA El SR coloca en el bus de datos el número de interrupción que desea El uP procede a realizar el servicio

PREGUNTA 13 ¿Cómo utiliza el computador el chip PIC 8259 (controlador de interrupciones programable) para aumentar la capacidad de atención de interrupciones del microprocesador?.

< FIN DE LA CLASE 13 >