;PROGRAMA QUE MUESTRA EL USO DEL REGISTRO
;FSR PARA DIRECCIONAMIENTO INDIRECTO
;TRANSFIERE EL CONTENIDO DE LAS LOCALIDADES 
;20H..2FH A LAS LOCALIDADES 30..3fH EN MEMORIA DE DATOS
;PROGRAMA DEMOSTRATIVO DEL USO DEL REGISTRO FSR
;PARA OBSERVAR EN EL SIMULADOR DE MPLAB. MODIFIQUE
;MANUALMENTE EL CONTENIDO DE LAS LOCALIDADES DE LA 20H..2FH, 
;LUEGO USANDO LA FUNCION "ANIMATE" OBSERVE LA TRANSFERENCIA
;DE ESTOS 16 DATOS A LAS LOCALIDADES 30H..3FH.

	include	  <p16f88.inc>
	include	  "KEY.inc"

CONT equ 40H	;contador
temp equ 41H	;registro de almacenamiento temporal

	
		ORG 	0
		CLRF 	PCLATH		;REQUERIDO POR EL BOOTLOADER TINY
		GOTO	INICIO		;AQUI DEBE HABER UN GOTO AL INICIO DEL PROGRAMA	
		ORG 	3		;REQUERIDO POR EL BOOTLOADER TINY. 						
INICIO		PUERTOS			;MACRO PARA INICIALIZAR LOS PUERTOS DE 16F88

;aquí inicia el programa del usuario

 		movlw 	H'20'
 		movwf 	FSR		;INICIALIZA FSR CON DIRECCION 20H
 		movlw 	D'16'		;16 LOCALIDADES DE MEMORIA
	 	movwf 	CONT		;LOCALIDAD PARA GUARDAR EL CONTADOR
LOOP 		movfw 	INDF		
 		movwf 	temp
 		movlw 	10H		;SUMA UN OFFSET DE 10H
 		addwf 	FSR
 		movfw 	temp
 		movwf 	INDF
		movlw	10H
		subwf	FSR
		incf	FSR		;INCREMENTA DIRECCION INDIRECTA
 		decfsz	CONT
		GOTO 	LOOP		
UNO 		sleep
 
		end
 
