Регистр состояния

 

Регистр состояния (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) - флаг переноса.