assem / Ответы по пунктам / 013
.docx-
Регистр флагов и его функции.
Регистр флагов – это особые биты, каждый из которых имеет собственное особое назначение. Регистр флагов информирует о состоянии процессора.
CF (carry flag) - флаг переноса равен 1, если произошёл перенос 1 при сложении или заём 1 при вычитании. В противном случае CF = 0. Кроме того, CF содержит значение бита, который при сдвиге или циклическом сдвиге регистра или ячейки памяти вышел за их границы, и ещё отражает результат операции сравнения. Наконец, CF служит индикатором результата умножения.
PF (parity flag) - флаг чётности равен 1, если в результате операции получено число с чётным числом единиц в его битах, иначе PF = 0. В основном используется в операциях обмена данными.
AF (auxiliary саrrу flag) - вспомогательный флаг переноса аналогичен флагу CF, только контролирует перенос или заём для третьего бита данных. Используется при выполнении операций над упакованными десятичными числами.
ZF (zero flag) - флаг нуля равен 1, если в результате операции получен нуль, при ненулевом результате ZF = 0.
SF (sign flag) - флаг знака имеет значение только при операциях над числами со знаком. Флаг SF =1, если в результате арифметической или логической операции, сдвига или циклического сдвига получено отрицательное число. Иначе SF = 0. Флаг дублирует знаковый разряд (7 или 15).
TF (trap flag) - флаг трассировки разрешает исполнять программу по "шагам" (флаг ловушки). Когда TF = 1, МП автоматически вырабатывает сигнал внутреннего прерывания после выполнения каждой команды. Адрес сервисной процедуры организации пошагового режима должен быть определён в абсолютных адресах. Флаг трассировки может быть установлен программно.
IF (interrupt enable flag) - флаг прерывания разрешает МП реагировать на прерывания от внешних устройств. При IF = 0, заставляет МП игнорировать прерывания до установления его в 1.
DF (direction flag) - флаг направления заставляет МП уменьшать на 1 (при DF =1) или увеличивать на 1 (при DF = 0) регистр (ы) индекса после выполнения команды работы со строками. Если DF = 0, то МП будет обрабатывать строку "слева направо" (от младших адресов к старшим), в противном случае обработка строки пойдёт "справа налево".
OF (overflow flag) - флаг переполнения служит индикатором ошибки при выполнении операций над числами со знаком. В сочетании с флагом CF указывает длину результата умножения. Если старшая половина произведения отлична от нуля, то OF и CF равны 1, в противном случае они равны нулю. Если частное от деления двух чисел переполняет результирующий регистр, флаг OF = 1.