Раздел: Документация
0 ... 47 48 49 50 51 52 53 ... 195 Простая косвенная адресация При использовании команд простой косвенной адресации обращение производится к ячейке памяти, адрес которой находится в индексном регистре (Рис. 2.31). Никаких действий с содержимым индексного регистра при этом не производится. ОЗУ $FFFF Рис. 2.31. Простая косвенная адресация Микроконтроллеры поддерживают 6 команд (по 2 для каждого индексного регистра) простой косвенной адресации: LD Rd,x/Y/z (пересылка байта из ОЗУ в РОН) и ST X/Y/z , Rd (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в битах 8...4 слова команды. Относительная косвенная адресация При использовании команд относительной косвенной адресации адрес ячейки памяти, к которой производится обращение, получается суммированием содержимого индексного регистра (Y или Z) и константой, задаваемой в команде. Другими словами, производится обращение по адресу, указанному в команде, относительно адреса, находящегося в индексном регистре. Иллюстрация данного способа адресации приведена на Рис. 2.32. Положение битов п и q на рисунке показано условно. ОЗУ Регистр Y или Z 10 6 5 КОП Rr/Rd Rr/Rd — РОН (источник/приемник) $FFFF Микроконтроллеры семейства Mega поддерживают 4 команды относительной косвенной адресации (две — для регистра Y и две — для регистра Z): LDD Rd, Y+q/Z+q (пересылка байта из ОЗУ в РОН) и ST Y+q/Z+q, Rr (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в битах 8...4 слова команды, а величина смещения — в битах 13,11,10, 2...0. Поскольку под значение смещения отводится только 6 битов, оно не может превышать 64. Косвенная адресация с преддекрементом При использовании команд косвенной адресации с преддекрементом содержимое индексного регистра сначала уменьшается на 1, а затем производится обращение по полученному адресу (Рис. 2.33). ОЗУ Регистр X, Y или Z $FFFF Puc. 2.33. Косвенная адресация с преддекрементом Микроконтроллеры семейства поддерживают 6 команд (по 2 для каждого индексного регистра) косвенной адресации с преддекрементом: LD Rd, -X/-Y/-Z (пересылка байта из ОЗУ в РОН) и ST -X/-Y/-Z, Rd (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в битах 8...4 слова команды. Косвенная адресация с постинкрементом При использовании команд косвенной адресации с постинкрементом после обращения по адресу, который находится в индексном регистре, содержимое индексного регистра увеличивается на 1 (Рис. 2.34). ОЗУ Регистр X, Y или Z $FFFF Puc. 2.34. Косвенная адресация с постинкрементом Микроконтроллеры семейства поддерживают 6 команд (по 2 для каждого индексного регистра) косвенной адресации с постинкрементом: LD Rd, X+/Y+/Z+ (пересылка байта из ОЗУ в РОН) и ST X+/Y+/Z+, Rd (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в битах 8...4 слова команды. 2.2.3. Энергонезависимая память данных (EEPROM) Все микроконтроллеры семейства Mega имеют в своем составе энергонезависимую память (EEPROM-память). Объем этой памяти колеблется от 256 байт в моделях ATmega48x до 4 Кбайт в старших моделях. EEPROM-память расположена в своем адресном пространстве и так же, как и ОЗУ, организована линейно. Доступ к EEPROM Для работы с EEPROM-памятью используются три регистра ввода/вывода: регистр адреса, регистр данных и регистр управления, адреса которых для разных моделей микроконтроллеров приведены в Табл. 2.23. Таблица 2.23. Регистры EEPROM
Регистр адреса EEAR (EEPROM Address Register) физически размещается в двух РВВ — EEARH:EEARL. В этот регистр загружается адрес ячейки, к которой будет производиться обращение. Регистр адреса доступен 0 ... 47 48 49 50 51 52 53 ... 195
|