este es el programa...
y me falta hacer muchas cosas que no ser como hacer, como repetir la secuencia3 100 veces

;PROGRAMA QUE ENCIENDE leds al pulsar RA4
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
RADIX HEX
;************DECLARACION DE VARIABLES*********
status equ 0X03
porta equ 0X05
trisa equ 0x05
portb equ 0X06
trisb equ 0x06
#define led1On bsf porta,0
#define led1Off bcf porta,0
#define led2On bsf porta,1
#define led2Off bcf porta,1
#define led3On bsf porta,2
#define led3Off bcf porta,2
#define led4On bsf porta,3
#define led4Off bcf porta,3
#define led5On bsf portb,0
#define led5Off bcf portb,0
#define led6On bsf portb,1
#define led6Off bcf portb,1
#define led7On bsf portb,2
#define led7Off bcf portb,2
#define led8On bsf portb,3
#define led8Off bcf portb,3
#define led9On bsf portb,4
#define led9Off bcf portb,4
#define led10On bsf portb,5
#define led10Off bcf portb,5
#define led11On bsf portb,6
#define led11Off bcf portb,6
#define led12On bsf portb,7
#define led12Off bcf portb,7
d1 equ 0x0c
d2 equ 0x0d
d3 equ 0x0e
d4 equ 0x10
d5 equ 0x11
d6 equ 0x12
d7 equ 0x13
d8 equ 0x14
d9 equ 0x15
d10 equ 0x16
d11 equ 0x17
d12 equ 0x18
;*********CONFIGURACION DE PUERTOS***********
ORG 0X00
bsf status,5
movlw b'00010000'
movwf trisa
movlw b'00000000'
movwf trisb
bcf status,5
clrf porta
clrf portb
;****************INICIO DEL PROGRAMA*********
inicio
btfsc porta,4
goto inicio
call secuencia1
call secuencia2
call secuencia3
call secuencia4
call secuencia5
secuencia1
led1On
led7On
call delay250ms
led1Off
led7Off
led2On
led8On
call delay250ms
led2Off
led8Off
led3On
led9On
call delay250ms
led3Off
led9Off
led4On
led10On
call delay250ms
led4Off
led10Off
led5On
led11On
call delay250ms
led5Off
led11Off
led6On
led12On
call delay250ms
clrf porta
clrf portb
return
secuencia2
movlw b'00000011'
movwf porta
movlw b'00001100'
movwf portb
call delay150ms
clrf porta
clrf portb
movlw b'00001100'
movwf porta
movlw b'00110000'
movwf portb
call delay150ms
clrf porta
clrf portb
movlw b'11000011'
movwf portb
call delay150ms
clrf porta
clrf portb
return
secuencia3
movlw b'00001111'
movwf porta
movlw b'11111111'
movwf portb
call delay100ms
clrf porta
clrf portb
return
secuencia4
led1On
call delay300ms
led1Off
led2On
call delay300ms
led2Off
led3On
call delay300ms
led3Off
led4On
call delay300ms
led4Off
led5On
call delay300ms
led5Off
led6On
call delay300ms
led6Off
led7On
call delay300ms
led7Off
led8On
call delay300ms
led8Off
led9On
call delay300ms
led9Off
led10On
call delay300ms
clrf porta
clrf portb
return
secuencia5
led10Off
call delay300ms
led9On
call delay300ms
led9Off
led8On
call delay300ms
led8Off
led7On
call delay300ms
led7Off
led6On
call delay300ms
led6Off
led5On
call delay300ms
led5Off
led4On
call delay300ms
led4Off
led3On
call delay300ms
led3Off
led2On
call delay300ms
led2Off
led1On
call delay300ms
led1Off
clrf porta
clrf portb
return
delay250ms
;299993 cycles
movlw 0x5E
movwf d1
movlw 0xEB
movwf d2
delay250ms_0
decfsz d1, f
goto $+2
decfsz d2, f
goto delay250ms_0
;3 cycles
goto $+1
nop
;4 cycles (including call)
return
delay150ms
;149993 cycles
movlw 0x2E
movwf d3
movlw 0x76
movwf d4
delay150ms_0
decfsz d3, f
goto $+2
decfsz d4, f
goto delay150ms_0
;3 cycles
goto $+1
nop
;4 cycles (including call)
return
delay100ms
;99993 cycles
movlw 0x1E
movwf d5
movlw 0x4F
movwf d6
delay100ms_0
decfsz d5, f
goto $+2
decfsz d6, f
goto delay100ms_0
;3 cycles
goto $+1
nop
;4 cycles (including call)
return
delay300ms
;299993 cycles
movlw 0x5E
movwf d7
movlw 0xEB
movwf d8
delay300ms_0
decfsz d7, f
goto $+2
decfsz d8, f
goto delay300ms_0
;3 cycles
goto $+1
nop
;4 cycles (including call)
return
END