Re: ¿Como se reprograman las interrupciones?
Enviado por alex el día 11 de enero de 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
Re: ¿Como se reprograman las interrupciones?
Enviado por Velo el día 7 de febrero de 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 :)
Re: ¿Como se reprograman las interrupciones?
Enviado por maikel el día 28 de marzo de 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