1.4 El concepto de interrupciones
Definición: Una interrupción es el rompimiento en la secuencia de un
programa para ejecutar un programa especial llamando una rutina de servicio
cuya característica principal es que al finalizar regresa al punto donde se
interrumpió el programa.
Dentro
de una computadora existen dos clases de interrupciones:
◘ Interrupciones por
software: Son aquellas programadas por el usuario, es decir, el usuario decide
cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y
salida.
◘ Interrupciones por hardware: Son aquellas que son provocadas por
dispositivos externos al procesador su característica principal es que no son
programadas, esto es, pueden ocurrir en cualquier momento en el programa.
Existen
dos clases de interrupciones de este tipo:
- Interrupciones por hardware enmascarables: Aquellas en las que el usuario decide si quiere o no ser interrumpido.
- Interrupciones por hardware no enmascarables (NMI): Aquellas que siempre interrumpen al programa.
Las
interrupciones por software se ejecutan con ayuda de las instrucciones: INT e
IRET, además se tiene 256 interrupciones: de la 00 a la FF.
Asociado
al concepto de interrupción se tiene un área de memoria llamada vector de
interrupciones; la cual contiene las direcciones de las rutinas de servicio de
cada interrupción. Esta área se encuentra en el segmento 0000:0000.
Una interrupción es una situación especial que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción para tratarla. Tal situación se da, por ejemplo, cuando un periférico requiere la atención del procesador para realizar una operación de E/S.
Las interrupciones constituyen quizá el mecanismo más importante para la conexión del microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.
Pasos para el pricesamiento:
1. Terminar la ejecución de la instrucción máquina en curso.
2. Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la última instrucción.
3. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (ISR, Interrupt Service Routine) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción.
4. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.
Ejemplo de interrupciones:
- int 01h-->un solo paso
- int 02h-->interrupcion no enmascarable
- int 03h--> punto de interrupcion
- int 04h-->desbordamiento
- int 05h-->impresion de pantalla
- int 08h-->Cronometro
- int 15h-->Servicios del sistema
- int 16h-->Funciones de entrada del teclado
- int 18h-->Entrada con el Basic de Rom
- int 19h-->Cargador ed arranque
- int 1Ah-->Leer y establecer la hora
- int 1Bh-->Obtener el control con una interrupcion de teclado.
- int 2oh-->Terminar un programa
- int 33h->Funciones del Raton
No hay comentarios:
Publicar un comentario