Файл регистров общего назначения
Все команды оперирующие регистрами прямо адресуются к любому из регистров за один машинный цикл. Единственное исключение - пять команд оперирующих с константами SBCI, SUBI, CPI, ANDI, ORI и команда LDI, загружающая регистр константой. Эти команды работают только со второй половиной регистрового файла - R16..R31. Команды SBC, SUB, CP, AND и OR, также как и все остальные, применимы ко всему регистровому файлу.
Каждому регистру присвоен адрес в пространстве данных, они отображаются на первые 32 ячейки ОЗУ. Хотя регистровый файл физически размещен вне ОЗУ, подобная организация памяти дает гибкий доступ к регистрам. Регистры X, Y и Z могут использоваться для индексации любого регистра.
Кроме обычных функций, регистры R26..R31 имеют дополнительные функции, эти регистры можно использовать как адресные указатели в области памяти данных. Эти регистры обозначаются как X,Y,Z и определены следующим образом:
15 | 0 | |||
Регистр X | 7 | 0 | 7 | 0 |
R27($1B) | R26($1A) | |||
15 | 0 | |||
Регистр Y | 7 | 0 | 7 | 0 |
R29($1D) | R28($1C) | |||
15 | 0 | |||
Регистр Z | 7 | 0 | 7 | 0 |
R31($1F) | R30($1E) | |||
При различных режимах адресации эти регистры могут использоваться как фиксированный адрес, для адресации с автоинкрементном или с авто декрементом.