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
relacionadas: http://stackoverflow.com/questions/3392831/what-happens-in-an-interrupt-service -routine –