Регистр X, регистр Y и регистр Z

Файл регистров общего назначения

На Рис. 5 представлена структура 32 регистров общего назначения.

Рис. 5. Регистры общего назначения CPU микроконтроллеров AVR

Все регистровые команды обращаются непосредственно к регистрам в течение одного тактового цикла. Исключением являются пять логических и арифметических операций с константами (SBCI, SUBI, CPI и ANDI) и операция ORI между константой и содержимым регистра, и команда непосредственной загрузки константы LDI. Эти команды используют вторую половину регистров регистрового файла - R16..R31.

Самые общие команды SBC, SUB, CP, AND и OR и все прочие операции между двумя регистрами или с одним регистром используют для записи результата регистровый файл.

Как показано на Рис. 5, каждому регистру соответствует адрес памяти данных, отображающий их в первых 32 ячейках пользовательского пространства данных. Хотя они не используются как физические ячейки SRAM, такая организация памяти обеспечивает гибкое обращение к регистрам, поскольку X,Y и Z регистры могут быть использованы для индексации любого регистра в файле.

SRAM данных имеет объем 4 Кбайт и занимает адресное пространство от $0060 до $0FFF.

Регистр X, регистр Y и регистр Z

Шесть регистров (с R26 по R31) регистрового файла, кроме обычной для прочих регистров функций, выполняют функцию 16-разрядных регистров указателей адреса при косвенной адресации SRAM. Эти три регистра косвенной адресации определяются как регистры X,Y и Z.

Рис. 6. Регистры X, Y и Z

В различных режимах адресации эти регистры выполняют функции фиксированного смещения, автоматического инкремента и декремента (см. описания команд).