Регистр 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
В различных режимах адресации эти регистры выполняют функции фиксированного смещения, автоматического инкремента и декремента (см. описания команд).