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