Altana Tubes > Blog > PIC16F627A/628A/648A > Memória > Endereçamento

4.4 Endereçamento Indireto, Registradores INDF e FSR dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A

Revisão: Renato Kodaira

Tradução: Maria Elisa - Assessoria em Inglês e Alemão 

O registrador INDF dos microcontroladores  PIC16F627APIC16F628A e PIC16F648A não é um registrador físico. O endereçamento do registrador INDF resultará em um endereçamento indireto.

O endereçamento indireto é possível utilizando-se o registrador INDF. Qualquer instrução que utilize o registrador INDF na verdade accessará os dados apontados pelo Registrador de Seleção de Arquivo (File Select Register - FSR). A leitura do INDF propriamente dito indiretamente produzirá um 00h. A escrita no registrador INDF indiretamente resultará em uma não-operação (apesar de os bits de Status poderem ser afetados). Um endereço de 9 bits efetivo é obtido concatenando-se o registrador FSR de 8 bits e o bit IRP (STATUS<7>), conforme apresentado na Figura 4.5.

Um programa simples para apagar a posição RAM 20h-2Fh utilizando o endereçamento indireto é apresentado no Exemplo 4.1.

EXEMPLO 4.1: ENDEREÇAMENTO INDIRETO


	MOVLW 0x20 	;Inicializar o ponteiro
	MOVWF FSR 	;para a RAM
NEXT 	CLRF INDF 	;apagar o registrador INDF  
	INCF FSR 	;incrementar o ponteiro
	BTFSS FSR,4     ;tudo feito?
	GOTO NEXT	;não apagar o próximo
			;sim continuar

 

IGURA 4.5: ENDEREÇAMENTO DIRETO/ INDIRETO PIC16F627A/628A/648A

<-Anterior Índice Próximo->