МК PIC16F84. Механизмы адресации памяти данных

Косвенная адресация – такой режим адресации регистров, при котором в команде не указывается адрес памяти данных. Регистр специального назначения FSR, доступный для записи/чтения, используется в качестве указателя адреса в памяти данных. Этот режим адресации может быть полезен при обращении к таблицам данных. На рисунке 6-7 показана операция косвенной адресации (запись значения в регистр памяти данных с адресом, указанном в регистре FSR). Для выполнения косвенной адресации необходимо обратиться к регистру INDF. Обращение к регистру INDF фактически вызовет действие с регистром, адрес которого указан в FSR. Косвенное чтение регистра INDF (FSR=0) даст результат 00h. Косвенная запись в регистр INDF не вызовет никаких действий (вызывает воздействия на флаги АЛУ в регистре STATUS). 9-й бит косвенного адреса IRP сохраняется в регистре STATUS<7>. Пример 9-разрядной косвенной адресации показан на рисунке 6-8

Рис. 6-7

Рис. 6-8

В примере 6-2 показано использование косвенной адресации для очистки памяти данных (адреса 20h – 2Fh) минимальным числом команд микроконтроллера. Подобный метод может использоваться для передачи блока данных в регистр TXREG передатчика USART. Начальный адрес блока данных, подготовленного для передачи, может быть легко изменен в соответствии с требованиями программы.

Пример 6-2 Очистка регистров памяти данных с адреса 20h по 2Fh

BCF STATUS, IRP; Установить банк 0,1

MOVLW 0x20; Указать первый регистр в ОЗУ

MOVWF FSR

NEXT:

CLRF INDF; Очистить регистр

INCF FSR,F; Увеличить адрес

BTFSS FSR,4; Завершить?

GOTO NEXT; Нет, продолжить очистку

CONTINUE:

; Да

Механизм прямой адресации:

Прямая адресация - для указания банка памяти данных необходимо использовать биты RP1:RP0 регистра STATUS;





Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: