CBLOCK 0x70
HoraIngresoL,HoraIngresoH
HoraEgresoL,HoraEgresoH
Puesto
ENDC
#define Inicio 0x20
#define Final 0x48
org 0x00
Inicia
movlw Inicio
movwf FSR
Loop
call Guarda_Registro
goto Loop
Guarda_Registro
;Hora ingreso
movf HoraIngresoL,w
movwf INDF
incf FSR,F
movf HoraIngresoH,w
movwf INDF
;Hora egreso
decf FSR,F
bsf FSR,7 ;Direccionamiento indirecto al banco 1
movf HoraEgresoL,w
movwf INDF
incf FSR,F
movf HoraEgresoH,w
movwf INDF
;Puesto
bcf FSR,7 ;ahora banco 0
bsf STATUS,IRP ;ahora banco 2
movlw Inicio
subwf FSR,F
bcf STATUS,C
rrf FSR,w
addlw Inicio
movwf FSR
movf Puesto,W
movwf INDF
incf FSR,F
movf FSR,W
xorlw Final ;fin memoria disponible?
movlw Inicio
btfsc STATUS,Z
movwf FSR
bcf STATUS,IRP ;ahora banco 0
movlw Inicio
subwf FSR,F
bcf STATUS,C
rlf FSR,w
addlw Inicio
movwf FSR
return