miércoles, 30 de octubre de 2019

Interrupciones en ensamblador.

Concepto de interrupciones.
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 procesamiento.

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.

 
Ejemplos 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