Buena sospecha yo ya tuve ese problema
http://www.todopic.com.ar/foros/index.php?topic=17792.0 pero tambien te olvidastes de guardar
Wla mejor solucion es,por ejemplo si trabajas con 16f87xA, es usar los registros en los que guardas el contexto a partir de la direccion 70h ya que en todos los bancos se ven la misma posicion.
GUARDA_CONTEXTO MACRO ;Guarda el contexto para que el servicio de interrupción
MOVWF REGW ; guarda W
movwf REG_W_INTERRUPCION ;no afecte al buen funcionamiento del resto de rutinas
swapf STATUS,W ;que se interrumpen en cualquier momento por ésta.
clrf STATUS
movwf REG_STATUS_INTERRUPCION
movfw PCLATH
clrf PCLATH
movwf REG_PCLATH_INTERRUPCION
movfw FSR
clrf FSR
movwf REG_FSR_INTERRUPCION
ENDM
recuperacion para la salida de interrupcion
................................................
...............................................
movfw REG_FSR_INTERRUPCION
movwf FSR
movfw REG_PCLATH_INTERRUPCION
movwf PCLATH
SWAPF REG_STATUS_INTERRUPCION,W
MOVWF STATUS
SWAPF REGW,F
SWAPF REGW,W retfie
SAL u 2