Porque não desabilita RBIF?

Olá pessoal!
Fiz este programinha abaixo para teste e não sei por qual motivo não desabilita RBIF no tratamento da interrupção. Estou utilizando o MPLAB SIM e notei que não é possível voltar ao código principal, pois a todo momento a interrupção é chamada. Estou utilizando RB4 em Stimullus com Action:Toggle.
Segue o código:
Alguém pode ajudar, dizendo qual o motivo?
Grato.
Fiz este programinha abaixo para teste e não sei por qual motivo não desabilita RBIF no tratamento da interrupção. Estou utilizando o MPLAB SIM e notei que não é possível voltar ao código principal, pois a todo momento a interrupção é chamada. Estou utilizando RB4 em Stimullus com Action:Toggle.
Segue o código:
- Código: Selecionar todos
;---------------------------------------------------------------------------
;PROGRAMA PARA ESTUDO DA INTERRUPÇÃO POR MUDANÇA DE ESTADO
;FUNCIONAMENTO: AO MUDAR O ESTADO DE RB4, O ESTADO DO PORTD
; SERÁ COMPLEMENTADO
;---------------------------------------------------------------------------
#INCLUDE <P16F877A.INC>
__CONFIG _WDT_OFF & _HS_OSC & _LVP_OFF
#DEFINE BANK0 BCF STATUS,RP0
#DEFINE BANK1 BSF STATUS,RP0
ORG 0X00 ;VETOR DE RESET
GOTO INICIO
ORG 0X04 ;VETOR DE INTERRUPÇÃO
GOTO TRATA_INT
INICIO: BANK1 ;BANCO 1
MOVLW .7 ;DESLIGA CONVERSOR A/D
MOVWF ADCON1
MOVLW B'11001000' ;HABILITA INTERRUPÇÃO POR MUDANÇA DE ESTADO
MOVWF INTCON
MOVLW B'00010000'
MOVWF TRISB ;DEFINE RB4 COMO ENTRADA E O RESTANTE COMO SAÍDA
CLRF TRISD ;DEFINE TODO O PORTD COMO SAÍDA
BANK0 ;BANCO 0
MAIN: GOTO $ ;LOOP INFINITO, AGUARDANDO INTERRUPÇÃO
;--------------------------TRATA INTERRUPÇÃO--------------------------
TRATA_INT:
BCF INTCON,RBIF ;APAGA FLAG DE INTERRUPÇÃO ATIVA
COMF PORTD
RETFIE
;--------------------------------FIM-----------------------------------
END
Alguém pode ajudar, dizendo qual o motivo?
Grato.