Es necesario separar los datos y el código con las palabras clave adecuadas. Entonces, por ejemplo, comienzas con alguna declaración del tipo de PIC y cualquier archivo incluido:
; beginning of source
list p=16F684
#include <p16F684.inc>
A continuación, puede declarar variables en una sección de datos (esto es solo un ejemplo genérico):
; declaring variables
GENVAR UDATA ; general variables
myvar1 res 1 ; one byte
myvar2 res 2 ; two bytes
Normalmente, luego inicia la sección de código, usando la palabra clave CODE
, y agrega un goto desde el vector de reinicio (donde el procesador comienza a ejecutarse):
; start of code (reset vector)
RESET CODE 0x0000 ; processor reset vector
goto start
Luego, declara cualquier otra sección de CÓDIGO, por ejemplo:
; main program
MAIN CODE
start
; e.g. configure ports
banksel TRISA ; configure PORTA as all o/p
clrf TRISA
; main loop
main_loop
; do stuff
; "
; repeat forever
goto main_loop
; mandatory terminator
END
Creo que tu problema es que has comenzado a escribir código sin declarar una sección CODE
.
EDIT Simplemente arreglando tu código agregando la palabra clave CODE
y el salto inicial desde el vector de restablecimiento que se compila bien:
También debe asegurarse de respetar las sangrías / espacios iniciales necesarios en las líneas de código para que no se confundan con las etiquetas. Su primer bloque de código (en MAIN) no fue sangrado, por lo que también causó errores.