;PROGRAMA QUE MUESTRA EL USO DEL REGISTRO
;FSR PARA DIRECCIONAMIENTO INDIRECTO
;transfiere el contenido de las localidades
;20h..2fh a las localidades 30h..3fh en la memoria de datos
;DEBE USARSE EL SIMULADOR DE MPLAB, MODIFICANDO
;A MANO LAS LOCALIDADES DE LA 20H..2FH, LUEGO
;USANDO LA FUNCION "ANIMATE" OBSERVAR LA TRANSFERENCIA
;DE 16 DATOS A LAS LOCALIDADES 30H..3FH.
; CPU configuration
; 	(It's a 16F628, XT OSCILADOR
; 	watchdog timer off, power-up timer on)

	processor 16f628
	include	  <p16f628.inc>
	__config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF
CONT equ 40H	;contador
temp equ 41H	;registro de almacenamiento temporal
org 0

 		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			;INCRREMENTA DIRECCION INDIRECTA
 		decfsz	CONT
		GOTO 	LOOP		
UNO 	sleep
 
end
 
