Hola que tal , muy buen sitio!!!!

Soy un estudiante de ingenieria en electrónica
apenas estoy programando mi primer pic el grandiosisimo 16f84A
pero tengo un problemita espero alguien me pueda ayudar.

He metido al pic un sencillo programa para que funcione como un semáforo. no utilizo interrupciones, solo utilizo la instrucción DECFSZ para saltar un goto en una subrutina que sirve para hacer un DELAY de 0.5 Segundos. el problema es que al momento de probar el programa en el pic este se reinicia solo sin terminar de hacer todas las instrucciones.
Ya he intentado lo siguiente:
Desactive el WatchDog desde el encabezado
list p=16f84A
include <p16f84A.inc>
_WDT_OFF EQU H\"3FFB\"
_RC_OSC EQU H\"3FFF\"
Desactivo el bit GIE del registro INTCON (ya intente desactivando los demas)

El programa lo inicio desde la posición h\"20\" de la EEPROM para brincarme la 05 que es donde esta la interrupcion
en org 0 le doy un goto INICIOpara irme a la 20
y por si a caso entra la interrupcion en la 05 tengo un RETFIE
Solo utilizo el PORTB como salidas
para salir de dudas ya intenté haciendo el programa sencillo sin subrutinas y suprimiendo la instrucción DECFSZ y de todos modos en algun lugar el pic se reinicia.
estare muy agradecido ya que hice y deshice el programa y pues llegué a la brillante deducción de que el problema es de una parte del pic que desconozco aun.

no pude adjuntar el programa pero aqui esta el encabezado
list p=16f84A
include <p16f84A.inc>
_WDT_OFF EQU H"3FFB"
_RC_OSC EQU H"3FFF"
AA equ H"0C" ; Variable utilizada en la subrutina MEDSEG
BB equ H"0D" ; " " " "
CC equ H"0E" ; " " " "
DD equ H"0F" ; Utilizada en la subrutinas DOSSEG y SEISSEG y para el numero de
; parpadeos del led verde
ORG 0
GOTO CERO
ORG 5
RETFIE
CERO ORG 20 ; Inicia en la posicion Cero del programa
BCF INTCON,GIE
BCF INTCON,EEIE
BCF INTCON,T0IE
BCF INTCON,INTE
BCF INTCON,RBIF
BCF INTCON,T0IF
BCF INTCON,INTF
BCF INTCON,RBIE
BSF STATUS,RP0
MOVLW d"00"
MOVWF TRISB
GOTO INICIO
INICIO MOVLW b"00100001" ; Enciende Rojo, Verde
MOVWF PORTB ; Envia el dato al puerto BB
CALL SEISSEG ; Llama a un retardo de 6 seg.
MOVLW d"004"
MOVWF DD ; DD = 4
FLIP MOVLW b"00100001"
MOVWF PORTB ;Enciende Rojo, Verde
CALL MEDSEG ;Retardo de 0.5Segundos
MOVLW b"00100000"
gracias y un saludo a los picmaniacos