Ayuda con programa en Assembler

Buenas tardes, estoy aprendiendo a programar en assembler trabajo en este programita la idea es que el led que esta por el puerto RA0 Parpadee cuando halla un estado alto en el puerto RB0 al compilar me da errores pero no logro dar con el fallo.

esto es lo que tengo de código


Código:
List p=PIC16F873     	;declaracion de procesador
Include "P16F873.inc"   
__config 0x3F38        ;declaracion de la configuracion        
CBLOCK   0X20
Loops, loops2,			;se nombran bariables
ENDC

org     0x00  ;inicio de programa
goto  Inicio  ;ir a etiqueta inicio

Inicio 	    movlw   0x07      ;cargar w con el valor 0x07   
       	    movwf   CMCON           
      	    bsf     STATUS, RP0 ; Seleccionar el banco de memoria 1         
       	    bcf     TRISA, 0    ;Configuramos como salida        
       	    bsf     TRISB, 1    ;Configuramos como entradas      
            bcf     STATUS,RP0  ; Seleccionar el banco de memoria 0
ciclo    	             
            btfss   PORTB,0      ;Comprueba si la entrada RB0 es 1       
            goto   	ciclo        

parpadeo         
            bsf      PORTA,0   ;Pone a "1" la salida RA0        
       	    call     retardo         
            bcf      PORTA,0        
            call     retardo         
            goto     ciclo        

retardo	    CLRWDT                ;subrutina de retardo en milisegundos
            MOVLW     D'200' 	 
            MOVWF     loops    
top2        MOVLW     D'220' 		
            MOVWF     loops2   
top         CLRWDT ;no va
            NOP
            NOP
            NOP
            NOP
            NOP
            NOP
            DECFSZ    loops2,1    ;pregunta si termino 1 ms
            GOTO      top
            DECFSZ    loops,1     ;pregunta si termina el retardo
            GOTO      top2
            RETLW     0
END

agradezco la ayuda que pe puedan prestar al explicarme en que estoy fallando.
 
Para empezar, cambia...
List p=PIC16F873 por list p=16F873

Dentro de CBLOCK cambia Loops por loops
También elimina la coma después de loops2

Remueve las instrucciones para el registro CMCON porque en ese PIC no existe tal registro,
y dentro del banco 1 agrega lo siguiente...
movlw 0x06
movwf ADCON1

Compila y prueba.

Suerte.
 
Atrás
Arriba