Insertá igual las etiquetas que faltan, asì al menos te va a compilar y podés ir verificando el código. Después vas agregando de a uno los efectos.
Algo así:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_tres
efecto_cuatro
efecto_cinco
efecto_seis
efecto_siete
efecto_ocho
efecto_dos:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
...............
este es el código completo sin errores
include "p16f84a.inc" ;En esta linea se especifica la biblioteca que incluye los registros definidos
radix hex ; Esta linea indica litelares(constantes) expresados en formato hexadecimal
errorlevel -302 ; Turn off banking message
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; igualdades de la CPU y el mapa de memoria;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
reg equ 0x0c
con1 equ 0x0d
con2 equ 0x0e
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;; inicio del programa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0
goto inicio
inicio bsf STATUS,RP0 ; cambio al banco 1 para configurar el pic
movlw 0xff ;puerto A como entrada
movwf trisa ; puerto A como entrada
movlw 0x00 ;puerto B como salida
movwf trisb ;puerto B como salida
bcf status,rp0 ;cambio al banco 0
clrf portb ;apago los leds a la salida
clrf con1 ;valor inicial de contador 1 igual a 0x00
clrf con2 ;valor inicial de contador 2 igual a 0x00
;;;;;;;;;;;;;;;;;;;;;; Lectura del puerto A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
leer:
movf porta,w
sublw 0x00 ;si el valor del puerto A es 0x00 implemento efecto_uno
btfsc status,z
goto efecto_uno
movf porta,w
sublw 0x01 ;si el valor del puerto A es 0x01 implemento efecto_dos
btfsc status,z
goto efecto_dos
movf porta,w
sublw 0x02 ;si el valor del puerto A es 0x02 implemento efecto_tres
btfsc status,z
goto efecto_tres
movf porta,w
sublw 0x03 ;si el valor del puerto A es 0x03 implemento efecto_cuatro
btfsc status,z
goto efecto_cuatro
movf porta,w
sublw 0x04 ;si el valor del puerto A es 0x04 implemento efecto_cinco
btfsc status,z
goto efecto_cinco
movf porta,w
sublw 0x05 ;si el valor del puerto A es 0x05 implemento efecto_seis
btfsc status,z
goto efecto_seis
movf porta,w
sublw 0x06 ;si el valor del puerto A es 0x06 implemento efecto_siete
btfsc status,z
goto efecto_siete
movf porta,w
sublw 0x07 ;si el valor del puerto A es 0x07 implemento efecto_ocho
btfsc status,z
goto efecto_ocho
goto leer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_uno:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_uno:
decfsz reg,f
goto fx_uno
goto leer
fx_uno:
movf reg,w
call tabla_uno
movwf portb
call retardo
goto leo_uno
tabla_uno:
addwf pcl,f ;;; tabla de secuencia de efecto_uno
return
retlw b'01111111'
retlw b'10111111'
retlw b'11011111'
retlw b'11101111'
retlw b'11110111'
retlw b'11111011'
retlw b'11111101'
retlw b'11111110'
retardo:
decfsz con1,f ;; bloque retardo
goto retardo
decfsz con2,f
goto retardo
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_dos:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_dos:
decfsz reg,f
goto fx_dos
goto leer
fx_dos:
movf reg,w
call tabla_dos
movwf portb
call retardo
goto leo_dos
tabla_dos:
addwf pcl,f ;;; tabla de secuencia de efecto_dos
return
retlw b'01011011'
retlw b'10101011'
retlw b'11011011'
retlw b'11101101'
retlw b'01110111'
retlw b'01011011'
retlw b'10101101'
retlw b'01110110'
retardo:
decfsz con1,f ;; bloque retardo
goto retardo
decfsz con2,f
goto retardo
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_tres:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_tres:
decfsz reg,f
goto fx_tres
goto leer
fx_tres:
movf reg,w
call tabla_tres
movwf portb
call retardo
goto leo_tres
tabla_tres:
addwf pcl,f ;;; tabla de secuencia de efecto_tres
return
retlw b'11011010'
retlw b'00101111'
retlw b'01011010'
retlw b'00101101'
retlw b'00110110'
retlw b'11011010'
retlw b'10101110'
retlw b'11010111'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_cuatro:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_cuatro:
decfsz reg,f
goto fx_cuatro
goto leer
fx_cuatro:
movf reg,w
call tabla_cuatro
movwf portb
call retardo
goto leo_cuatro
tabla_cuatro:
addwf pcl,f ;;; tabla de secuencia de efecto_cuatro
return
retlw b'01011011'
retlw b'10101011'
retlw b'11011011'
retlw b'10101101'
retlw b'10110011'
retlw b'11011011'
retlw b'10100110'
retlw b'01010011'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_cinco:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_cinco:
decfsz reg,f
goto fx_cinco
goto leer
fx_cinco:
movf reg,w
call tabla_cuatro
movwf portb
call retardo
goto leo_cinco
tabla_cinco:
addwf pcl,f ;;; tabla de secuencia de efecto_cinco
return
retlw b'11011010'
retlw b'00111000'
retlw b'11011010'
retlw b'00101011'
retlw b'10111010'
retlw b'01001011'
retlw b'10100101'
retlw b'11011010'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_seis:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_seis:
decfsz reg,f
goto fx_seis
goto leer
fx_seis:
movf reg,w
call tabla_seis
movwf portb
call retardo
goto leo_seis
tabla_seis:
addwf pcl,f ;;; tabla de secuencia de efecto_seis
return
retlw b'11011011'
retlw b'01101010'
retlw b'01011011'
retlw b'10101010'
retlw b'00101010'
retlw b'11011011'
retlw b'00110101'
retlw b'01011011'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_siete:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_siete:
decfsz reg,f
goto fx_siete
goto leer
fx_siete:
movf reg,w
call tabla_siete
movwf portb
call retardo
goto leo_siete
tabla_siete:
addwf pcl,f ;;; tabla de secuencia de efecto_siete
return
retlw b'01011010'
retlw b'10101011'
retlw b'11011010'
retlw b'00101011'
retlw b'10100011'
retlw b'01011010'
retlw b'10110100'
retlw b'11010010'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_ocho:
movlw 0x09 ;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_ocho:
decfsz reg,f
goto fx_ocho
goto leer
fx_ocho:
movf reg,w
call tabla_siete
movwf portb
call retardo
goto leo_ocho
tabla_ocho:
addwf pcl,f ;;; tabla de secuencia de efecto_siete
return
retlw b'11011011'
retlw b'00101010'
retlw b'11011010'
retlw b'10101011'
retlw b'00101010'
retlw b'11011011'
retlw b'00110101'
retlw b'01011010'
end
veo que en cada bloque hace falta un retardo cierto