Регистр состояния SREG содержит набор флагов, показывающих текущее состояние микроконтроллера. Большинство флагов автоматически меняется при наступлении определенных событий.

Биты регистра состояния I T H S V N Z C :

I Разрешение прерываний. Если 0, прерывания запрещены.

T Хранение бита. Операнд для команд BLD и BST.

H Половинный перенос. 1, если произошел перенос или заем между 3-м и 4-м битом результата операции.

S Знак. 1, если результат выполнения команды меньше 0

V Переполнение. 1, если произошло переполнение числа со знаком.

N Отрицательное значение. 1, если старший бит результата операции равен 1.

Z Ноль. 1, если результат операции равен 0.

C Перенос. 1 если результат операции вышел за границы байта.

Ниже перечислены команды, выполнение которых устанавливает или сбрасывает флаги регистра состояния SREG.

Сравнение и проверка регистров

7 6 5 4 3 2 1 0
I T H S V N Z C
Проверка регистра
 TST Rd проверка РОН на отрицательное или нулевое значение (Rd•Rd)      
Сравнение регистров
 CP Rd, Rr Сравнение РОН (Rd-Rr)  
 CPC Rd, Rr Сравнение РОН с учетом переноса (Rd-Rr-C)  
 CPI Rd, K Сравнение РОН с константой  

Логические операции

7 6 5 4 3 2 1 0
I T H S V N Z C
И
 AND Rd, Rr Логическое И двух РОН      
 ANDI Rd, K Логическое И РОН и константы      
ИЛИ
 EOR Rd, Rr Исключающее ИЛИ двух РОН      
 OR Rd, Rr Логическое ИЛИ двух РОН      
 ORI Rd, K Логическое ИЛИ РОН и константы      

Арифметические операции

7 6 5 4 3 2 1 0
I T H S V N Z C
Сложение
 ADD Rd, Rr Сложение двух РОН  
 ADC Rd, Rr Сложение двух РОН с переносом  
 ADIW Rdh:Rdl, K Сложение регистровой пары с константой  
Вычитание
 SUB Rd, Rr Вычитание двух РОН  
 SUBI Rd, K Вычитание константы из РОН  
 SBC Rd, Rr Вычитание двух РОН с заемом  
 SBCI Rd, K Вычитание константы из РОН с заемом  
 SBIW Rdh:Rdl, K Вычитание константы из регистровой пары  
Декремент, инкремент
 DEC Rd Вычитание 1 из РОН      
 INC Rd Прибавить 1 к РОН      

Сдвиг

7 6 5 4 3 2 1 0
I T H S V N Z C
 ASR Rd Арифметический сдвиг вправо Арифметический сдвиг вправо  
 LSL Rd Логический сдвиг влево  Логический сдвиг влево  
 LSR Rd Логический сдвиг вправо  Логический сдвиг вправо  
 ROL Rd Сдвиг влево через перенос  Сдвиг влево через перенос  
 ROR Rd Сдвиг вправо через перенос  Сдвиг вправо через перенос  

Операции с битами

7 6 5 4 3 2 1 0
I T H S V N Z C
Изменение нескольких бит
 COM Rd Перевод в обратный код (Rd=$FF-Rd)    
 NEG Rd Перевод в дополнительный код (Rd=0-Rd)  
 SWAP Rd Обмен местами полубайтов в РОН            
Изменение нескольких бит
 CLR Rd Сброс всех битов РОН (Rd=Rd⊕Rd)      
 SER Rd Установка всех битов РОН (Rd=$FF)            
 CBR Rd, K Сброс бит(ов) РОН (Rd=Rd•($FF-K))      
 SBR Rd, K Установка бит(ов) РОН Rd=Rd∨K      
Изменение одного бита
 CBI A,b Сброс бита РВВ            
 SBI A,b Установка бита РВВ            
 BCLR s Сброс флага (бита) регистра SREG
 BSET s Установка флага (бита) регистра SREG
 CLC Сброс флага переноса          
 SEC Установка флага переноса          
 CLZ Сброс флага нуля          
 SEZ Установка флага нуля          
 CLN Сброс флага отрицательного значения          
 SEN Установка флага отрицательного значения          
 CLV Сброс флага переполнения дополнительного кода          
 SEV Установка флага переполнения дополнительного кода          
 CLS Сброс флага знака          
 SES Установка флага знака          
 CLH Сброс флага половинного переноса          
 SEH Установка флага половинного переноса          
 CLT Сброс флага T            
 SET Установка флага T            
 CLI Общее запрещение прерываний            
 SEI Общее разрешение прерываний            
Сохранение бита
 BLD Rd,b Загрузка бита РОН из флага T(SREG)      
 BST Rr, b Запись бита РОН в флаг T(SREG)