list p=16F84A ;directiva list para definir procesador
#include <p16F84A.inc> ;definicion de registros especificos(SFRs)
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;***** Definicion de Variables
CBLOCK 0x0C
Datos:.24 ;definimos el inicio del arreglo donde se guardan los datos
cont ;para controlar el ciclo
Dato ;Variable que guarda el dato leido
ENDC
ORG 0x00
goto Inicio
Inicio
movlw Datos ;movemos la direccion de inicio del arreglo a W
movwf FSR ;FSR apunta al inicio del arreglo
clrf Cont ;el contador comienza en cero
Ciclo
movf Dato,W ;Tomamos el valor que queremos guardar en el arreglo
movwf INDF ;y lo guardamos , esto es, Datos[FSR] = Dato
incf FSR,F ;incrementamos FSR (FSR ++)
incf Cont,F ;Cont ++
movf Cont,W
xorlw .24 ;comparamos Cont con 24
btfss STATUS,Z ;Cont == 24?
goto Ciclo ;No => seguimos en el ciclo
sleep ;Si => terminamos
END