This is not error. if you use software interrupt in your code when simulating with proteus proteus couldnt show progress because no source address line in bas file. If you want to see source you must hardware interrupt.
Some registers will change in hardware interrupt for resolve this problem you must use this macros;
'------------------------------------------------------------------------------------------------------
' Macro to save the compiler's SYSTEM variables and selected SFR registers
SYSTEM_SAVE MACRO-
ASM-
; Context SAVE the essential registers
movff STATUS,_RAM_END ; Save the STATUS register
movff WREG,_RAM_END - 1 ; Save the WREG
movff BSR,_RAM_END - 2 ; Save the bank select register
movff FSR0L,_RAM_END - 3 ; Save low byte of FSR0
movff FSR0H,_RAM_END - 4 ; Save high byte of FSR0
movff FSR1L,_RAM_END - 5 ; Save low byte of FSR1
movff FSR1H,_RAM_END - 6 ; Save high byte of FSR1
movff FSR2L,_RAM_END - 7 ; Save low byte of FSR2
movff FSR2H,_RAM_END - 8 ; Save high byte of FSR2
movff PRODL,_RAM_END - 9 ; Save the multiply registers
movff PRODH,_RAM_END - 10 ; These require saving because the compiler uses them regularly.
movff TBLPTRL,_RAM_END - 11 ; Save the Table Pointer registers
movff TBLPTRH,_RAM_END - 12 ; These require saving because the compiler uses them regularly.
movff TABLAT,_RAM_END - 13 ; Save the code memory access register
; Save the compiler's SYSTEM variables
lfsr 0,_RAM_END - 14 ; Point FSR0 to the next available piece of memory in high RAM
lfsr 1,_SYSTEM_VARIABLE_COUNT - 1 ; Point FSR1 to the end of the SYSTEM variables in Access RAM
movlw _SYSTEM_VARIABLE_COUNT ; Form a loop for the amount of system variables used
movff POSTDEC1,POSTDEC0 ; Move the compiler's SYSTEM variables from Access RAM into high memory
decfsz WREG,F ; Decrement and skip if zero the variable counter
bra $ - 6 ; Keep placing variables until all done
VARIABLE _RAM_POINTER = (_RAM_END - 14) - _SYSTEM_VARIABLE_COUNT ; Point to the finishing point of the variable save
movlb 0 ; Reset Bank
ENDASM-
ENDM
'------------------------------------------------------------------------------------------------------
' Macro to restore the compiler's SYSTEM variables and selected SFR registers
SYSTEM_RESTORE MACRO-
ASM-
; Restore the compiler's SYSTEM variables
lfsr 0,_RAM_END - 14 ; Point FSR0 to the start of the system variables stored in high memory
lfsr 1,_SYSTEM_VARIABLE_COUNT - 1 ; Point FSR1 to the end of the SYSTEM variables in Access RAM
movlw _SYSTEM_VARIABLE_COUNT ; Form a loop for the amount of system variables used
movff POSTDEC0,POSTDEC1 ; Move the compiler's SYSTEM variables from high memory into Access RAM
decfsz WREG,F ; Decrement and skip if zero the variable counter
bra $ - 6 ; Keep placing variables until all done
; Context RESTORE the essential registers and exit the interrupt
movff _RAM_END - 13,TABLAT ; Restore the TABLAT register
movff _RAM_END - 12,TBLPTRH ; Restore high byte of TBLPTR
movff _RAM_END - 11,TBLPTRL ; Restore low byte of TBLPTR
movff _RAM_END - 10,PRODH ; Restore high byte of PROD
movff _RAM_END - 9,PRODL ; Restore low byte of PROD
movff _RAM_END - 8,FSR2H ; Restore high byte of FSR2
movff _RAM_END - 7,FSR2L ; Restore low byte of FSR2
movff _RAM_END - 6,FSR1H ; Restore high byte of FSR1
movff _RAM_END - 5,FSR1L ; Restore low byte of FSR1
movff _RAM_END - 4,FSR0H ; Restore high byte of FSR0
movff _RAM_END - 3,FSR0L ; Restore low byte of FSR0
movff _RAM_END - 2,BSR ; Restore the bank select register
movff _RAM_END - 1,WREG ; Restore the WREG
movff _RAM_END,STATUS ; Restore the STATUS register
movlb 0 ; Reset Bank
ENDASM-
ENDM
'------------------------------------------------------------------------------------------------------