Биты признаков

В результате выполнения команд арифметических или логических операций над исходными операндами, кроме собственно результата этих операций, процессор обеспечивает формирование признаков (флагов), характеризующих полученный результат операций. Признаки представляются альтернативными состояниями битов. Например, признак нулевого результата операции предполагает равенство “1” соответствующего бита при наличии нулевого результата и равенство этого бита “0” при отсутствии нулевого результата. Биты всех признаков объединены в общий регистр признаков (флагов) – F. Его формат показан в табл. 1.4, а значения отдельных битов признаков – в табл. 1.5.

Таблица 1.4

Формат регистра признаков

Биты D7 D6 D5 D4 D3 D2 D1 D0
Обозн S Z AC P CY

Таблица 1.5

Значения битов признаков

Слово Назначение
Sign Знак результата: "1"– минус; "0"– плюс. Знаком двоичного числа принято считать (как в схемотехнике цифроаналогового преобразования) значение старшего бита этого числа. Поэтому в бит S просто копируется старший бит результата операции, выполняемой процессором.
Zero Нулевой результат: да–"1"; нет–"0".
CarrY В этот бит помещается перенос из старшего разряда аккумулятора при сложении или из него берётся заём в старший разряд аккумулятора при вычитании: "1"– есть перенос или заём.: "1"–нет.
Add Carry Дополнительный перенос – то же что и Carry, но для границы полубайтов результата операции (биты D3 и D4).
Parity Паритет (чётность) для числа, показывающего количество битов равных "1" в составе байта результата: чётное (Even) –"1"; нечётное (Odd) – 0.

Биты регистра признаков устанавливаются командами арифметических, логических и сдвиговых операций. Они могут быть использованы другими командами в качестве объекта анализа или анализируемого условия. Анализировать состояния битов признаков могут команды условных переходов, условных вызовов подпрограмм или условных возвратов из подпрограмм.

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

Пример1.20

Метка Мнемокод Комментарий

M00: ACI 25h ;Сложить содержимое аккумулятора, число 25h ;и бит CY. Результат записать в аккумулятор и ;отразить его признаки в регистре признаков F

JNC M00 ;Анализировать состояние бита CY регистра F ;если CY=0 перейти к метке M00, иначе

HLT ; выполнить останов

Первая команда выполнит сложение двух однобайтных чисел (операндов) и бита переноса CY из регистра признаков:

операнд1+операнд2+CY=сумма и новое состояние F.

В результате сложения байт суммы окажется в аккумуляторе, а признаки результата – в регистре F.

Вторая команда JNC M00 будет анализировать условие (текущее состояние бита CY) и выбирать по результатам анализа один из двух альтернативных вариантов переходов в программе: при CY=0 команда обеспечит переход программы к метке M00, а при CY=1 будет выполняться следующая по порядку команда программы.