2012-09-17 18 views

Respuesta

16

Sí, puede crear su propio controlador de interpolación y llamarlo siempre que lo desee. Tendrá que configurar el vector de interrupción (que comienza en la dirección 0000: 0000) para apuntar a su propio manejador de interrupciones.

El puntero a cada controlador consume 4 bytes (desplazamiento y segmento) así que si, por ejemplo, desea configurar su manejador de interrupciones para INT 22h, debería actualizar el vector de interrput en la ubicación 0000: 0088h para apuntar a su controlador.

Compruebe Ralph Brown's interrupt list para verificar un número de interrupción no utilizado (al menos uno que no es utilizado por un interrput de hardware).

Aquí va un ejemplo de cómo configurar un controlador para la interrupción 22h:

INITIALIZE: 
     XOR AX,AX 
     MOV ES,AX 
     CLI ; Disable interrupts, might not be needed if seting up a software-only interrupt 
     MOV WORD PTR ES:[136], OFFSET INT22 ; setups offset of handler 22h 
     MOV WORD PTR ES:[138], CS   ; Here I'm assuming segment of handler is current CS 
     STI ; Reenable interrupts 
     ; End of setup 


INT22 PROC FAR 
     ; Here goes the body of your handler 
     IRET 
INT22 ENDP 
+0

Lo entiendo, pero algo así como una función de escritura de archivos en INT 21H, es la programación que sea posible. Además, ¿puedes dar un ejemplo de cómo configurar una Interrupción? Sería de gran ayuda, señor. –

+0

@TotalAnimeImmersion: Sí, puedes hacer lo que quieras en el manejador de interrupciones. Se agregó un ejemplo de configuración del controlador. – gusbro

+0

Muchas gracias, señor. Realmente ayudado. –

Cuestiones relacionadas