Способы адресации памяти данных

Микроконтроллеры AVR семейства Tiny поддерживают только 4 способа адресации для доступа к различным областям памяти данных. Причем 3 способа из 4-х являются всего лишь разновидностями прямой адресации.

Обратите внимание, что далее может встречаться аббревиатура КОП. Эта аббревиатура обозначает часть (или части) слова команды, содержащую значение Кода ОПерации.

Прямая адресация

При прямой адресации адреса операндов содержатся непосредственно в слове команды. Микроконтроллеры семейства поддерживают следующие разновидности прямой адресации: прямая адресация одного РОН, прямая адресация двух РОН, прямая адресация РВВ.

Прямая адресация одного регистра общего назначения

Этот способ адресации используется в командах, оперирующих с одним из регистров общего назначения. При этом адрес регистра-операнда (его номер) содержится в разрядах 8…4 (5 бит) слова команды (Рис. 5.6). Положение разрядов d на рисунке показано условно.

Способы адресации памяти данных - №1 - открытая онлайн библиотека

$<_IL_016>$

Рис. 5.6. Прямая адресация одного регистра общего назначения

Примером команд, использующих этот способ адресации, являются команды работы со стеком (PUSH, POP), команды инкремента (INC), декремента (DEC), а также некоторые команды арифметических операций.

Прямая адресация двух регистров общего назначения

Этот способ адресации используется в командах, оперирующих одновременно с двумя регистрами общего назначения. При этом адрес регистра-источника содержится в разрядах 9, 3…0 (5 бит), а адрес регистра-приемника в разрядах 8…4 (5 бит) слова команды (Рис. 5.7). Положение разрядов r и d на рисунке показано условно.

Способы адресации памяти данных - №2 - открытая онлайн библиотека

Рис. 5.7. Прямая адресация двух регистров общего назначения

К командам, использующим этот способ адресации, относятся команда пересылки данных из регистра в регистр (MOV), а также большинство команд арифметических операций. Кроме того, этот способ адресации используют даже некоторые команды, имеющие только один регистр-операнд. При этом источником и приемником является один и тот же регистр. В качестве примера можно привести команду очистки регистра (CLR Rd), которая в действительности выполняет операцию «Исключающее ИЛИ» регистра с самим собой (EOR Rd,Rd).

Прямая адресация регистра ввода/вывода

Данный способ адресации используется командами пересылки данных между регистром ввода/вывода и регистровым файлом -IN и OUT. В этом случае адрес регистра ввода/вывода содержится в разрядах 10, 9, 3…0 (6 бит), а адрес РОН - в разрядах 8…4 (5 бит) слова команды (Рис. 5.8). Положение разрядов r/d и P на рисунке показано условно.

Способы адресации памяти данных - №3 - открытая онлайн библиотека

Рис. 5.8. Прямая адресация регистра ввода/вывода