На рисунке 2.3 изображена программная модель AVR-микроконтроллеров, которая представляет собой диаграмму программно доступных ресурсов AVR. Центральным блоком на этой диаграмме является регистровый файл из 32 оперативных регистров (R0-R31) или как их обычно называют регистры общего назначения (РОН). Все РОН непосредственно доступны АЛУ. Старшие регистры (см. рис. 2.4.) объединены парами и образуют три 16-разрядных регистра, предназначенных для косвенной адресации ячеек памяти (AVR без SRAM имеют только один 16-битный регистр Z).
Рис. 2.3. Программная модель AVR-микроконтроллеров.
Регистровый файл, блок регистров ввода/вывода и оперативная память, как показано на рис. 2.3, образуют единое адресное пространство, что дает возможность при программировании обращаться к 32 оперативным регистрам и к регистрам ввода/вывода как к ячейкам памяти, используя команды доступа к SRAM (в том числе и с косвенной адресацией) .
Все арифметические и логические операции, а также часть операций работы с битами выполняются в АЛУ только над содержимым РОН. Следует обратить внимание, что команды, которые в качестве второго операнда имеют константу (SUBI, SBCI, ANDI, ORI, SBR, CBR), могут использовать в качестве первого операнда только регистры из второй половины РОН (R16-R31). Команды 16-разрядного сложения с константой ADIW и вычитания константы SBIW в качестве первого операнда используют только регистры R24, R26, R28, R30.
Рис. 2.4. Регистровый файл или РОН.
Во время выполнения арифметических и логических операций или операций работы с битами АЛУ формирует те или иные признаки результата операции, то есть устанавливает или сбрасывает биты в регистре состояния SREG (Status Register) (см. рис. 2.5).
Признаки результата операции могут быть затем использованы в программе для выполнения дальнейших арифметико-логических операций или команд условных переходов.