Регистр состояния (Status register) предназначен для хранения отдельных признаков результата, полученного при выполнении различных арифметических и логических операций в арифметико-логическом устройстве. Регистр обычно рассматривается состоящим из отдельных бит (флагов), каждый из которых несет в себе определенную информацию о каком либо одном признаке результата. Типовыми флагами регистра состояния являются:
0 флаг переноса (Carry) - устанавливается при возникновении переноса из
старшего разряда результата;
0 флаг переполнения (Overflow) - устанавливается при переполнении разрядной сетки; при алгебраическом сложении двух двоичных чисел признаком переполнения является наличие переноса в знаковый разряд суммы при отсутствии переноса из её знакового разряда (положительное переполнение) или наличие переноса из знакового разряда суммы при отсутствии переноса в её знаковый разряд (отрицательное переполнение); если и в знаковый, и из знакового разряда суммы есть переносы или нет этих обоих переносов, то переполнение отсутствует.
0 флаг отрицательного результата (Negative) - устанавливается, когда результат операции является отрицательным числом; отрицательным обычно считается число, содержащее единицу в знаковом (старшем) разряде.
0 флаг нулевого результата (Zero) - устанавливается, когда результат операции равен нулю;
0 флаг полупереноса (Half Overflow) - устанавливается при возникновении переноса из младшей тетрады 8-битного числа в старшую (из третьего разряда в четвертый).
Разрядность регистра состояния обычно равна разрядности ядра, но некоторые его биты могут быть не задействованы или задействованы в работе других узлов ядра.
Например, 8-битный регистр состояния ядра AVR (SREG- Status register) размещен в пространстве регистров ввода/вывода (табл. 3.1) по адресу $3F ($5F) и его биты определяются в соответствии с рис. 3.4.
Рис. 3.4. Регистр состояния ядра AVR
0 Бит 7 - I (Global Interrupt Enable) - бит разрешения глобального прерывания. Для разрешения прерывания должен быть установлен в состояние 1. Работа бита будет рассмотрена позднее.
0 Бит 6 - T (Bit Copy Storage) - бит сохранения копии. Ряд инструкций копирования используют его как бит-источник или бит-приемник.
0 Бит 5 - H (Half Carry Flag) - флаг полупереноса.
0 Бит 4 - S (Sign Bit, S = N V) - флаг знака. Бит S всегда находится в
состоянии, определяемом операцией исключающего ИЛИ (exclusive OR)
между флагом отрицательного значения N и флагом переполнения V.
0 Бит 3 - V (Two's Complement Overflow Flag) - флаг переполнения
(дополнения до двух).
0 Бит 2 - N (Negative Flag) - флаг отрицательного значения..
0 Бит 1 - Z (Zero Flag) - флаг нулевого значения.
0 Бит 0 - C (Carry Flag) - флаг переноса.