Cuando se dispara una interrupción siempre va a buscar el vector (dirección) 0x04. Programando en ensamblador debe ser el usuario el que por programa averigue que tipo de interrupción es la que se ha disparado y vaya a atender cuando lo sepa al correspondiente programita (hecho por nosotros también). La última instrucción de salida del programita de la interrupción es RETFIE, cuando el PIC lee esta instrucción retorna a la siguiente instrucción del programa principal desde donde saltó para atender a la interrupción.
Para averiguar por software que tipo de interrupción es, se hace revisando que bandera (flag) es la que ha subido a 1 (RBIF, INTF, T0IF etc). Al salir de la interrupción, hay que borrar esta bandera.
Cuando está atendiendo a una interrupción el bit GIE (bit GLOBAL de interrupciones) pasa a 0, de forma que prohibe la atención a otra interrupción. Cuando acaba de procesar RETFIE, automáticamente el bit GIE pasa de nuevo a 1, para permitir la llegada de nuevas interrupciones.
Si en lugar de programar en ensamblador, programas con un compilador, es este el que averigua que tipo de interrupción es la que se ha disparado, el usuario no tiene que hacer nada, solo decir al principio con que interrupciones se va a trabajar (se activan los bits parciales y el global)
Un saludo