¿Como se reprograman las interrupciones?

Martin Palermo
28 de Marzo del 2005
¿Como se reprograman las interrupciones?

Velo
28 de Marzo del 2005
Existe una interrupcion (mira en la lista de Ralf Brown), que te permite modficar el (vector de interrupciones*) de manera que una posicion de ese vector apunte a una rutina creada por ti que sera la encargada de gestionar dicha interrupcion. Antes de redireccionar una interrupcion (suele ser la de reloj 1Ch) es importante guardar el segmento i el OFFSET de la rutina original que gestionaba la interrupcion, y es necesario volver a modificar el vector de interrupcion al final del programa para que vuelvaa apuntar a la rutina del sistema.

*=>Por si andas un poco despistado te dire que el vector de interrupcion es un vector con tantas posiciones como interrupciones posibles, al que el sistema acude para buscar que rutina ejecutar cuando ha ocurrido una interrupcion determinada. Por ejemplo en la posicion 1Ch del vector se encuentra la direccion de la rutina del clock.




No se si te servira de ayuda porque ahora leiendolo no lo entendi ni yo :)

alex
28 de Marzo del 2005
No se a que te refieres realmente, pero cuando yo tocaba ensamblador, las interrupciones tenian lo siguiente:
a) se guarda la direccion de la rutina que las atiende
b) Se modifica ese valor con la direccion de tu rutina de atencion a la interrupcion
c) Cada vez que se recibe una int, tu rutina es llamada y al final de hacer lo que tu necesites debes de \"agradecerla\" con las siguientes lineas:
mov al, 20h
out 20h, al
d) Al final debes salir de la rutina con un \"iret;\"

No se si estoi te sirve para algo...pero bueno por si acaso

maikel
28 de Marzo del 2005
Si necesitas ayuda puedo enviarte las macros que te permiten ller, escribir y restaurar los vectores de interrupción, verás que facil te es todo