Автор Serber задал вопрос в разделе Другие языки и технологии
Для чего нужны флаги в ассемблере? и получил лучший ответ
Ответ от Briss[гуру]
Флаги не в ассеблере, это специальный регист в процессоре, который отражает состояние процессора: переполнение при вычислениях, перенос знака и т. д. Ассемблером лиш смотрят этот регистр и в зависимости от нужного состояния выбираются дальнейшие действия.
Ответ от Лайт Ягами[гуру]
CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос из старшего бита или если требуется заем (при вычитании) , иначе устанавливается в 0. Например, после сложения слова 0FFFFh и 1, если регистр, в который надо поместить результат, — слово, в него будет записано 0000h и флаг CF = 1.
PF — флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четное число бит, равных 1; устанавливается в 0, если число единичных бит нечетное. (Это не то же самое, что делимость на два. Число делится на два без остатка, если его самый младший бит равен нулю, и не делится, если он равен 1.)
AF — флаг полупереноса или вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг используется автоматически командами двоично-десятичной коррекции.
ZF — флаг нуля. Устанавливается в 1, если результат предыдущей команды — ноль.
SF — флаг знака. Этот флаг всегда равен старшему биту результата.
TF — флаг ловушки. Этот флаг был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой команды программы управление временно передается отладчику (вызывается прерывание 1 — см. описание команды INT).
IF — флаг прерываний. Установка этого флага в 1 приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств (см. описание команды INT). Обычно его устанавливают на короткое время для выполнения критических участков кода.
DF — флаг направления. Этот флаг контроллирует поведение команд обработки строк — когда он установлен в 1, строки обрабатываются в сторону уменьшения адресов, а когда DF = 0 — наоборот.
OF — флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей арифметической операции над числами со знаком выходит за допустимые для них пределы. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице (то есть отрицательное) и наоборот.
CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос из старшего бита или если требуется заем (при вычитании) , иначе устанавливается в 0. Например, после сложения слова 0FFFFh и 1, если регистр, в который надо поместить результат, — слово, в него будет записано 0000h и флаг CF = 1.
PF — флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четное число бит, равных 1; устанавливается в 0, если число единичных бит нечетное. (Это не то же самое, что делимость на два. Число делится на два без остатка, если его самый младший бит равен нулю, и не делится, если он равен 1.)
AF — флаг полупереноса или вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг используется автоматически командами двоично-десятичной коррекции.
ZF — флаг нуля. Устанавливается в 1, если результат предыдущей команды — ноль.
SF — флаг знака. Этот флаг всегда равен старшему биту результата.
TF — флаг ловушки. Этот флаг был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой команды программы управление временно передается отладчику (вызывается прерывание 1 — см. описание команды INT).
IF — флаг прерываний. Установка этого флага в 1 приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств (см. описание команды INT). Обычно его устанавливают на короткое время для выполнения критических участков кода.
DF — флаг направления. Этот флаг контроллирует поведение команд обработки строк — когда он установлен в 1, строки обрабатываются в сторону уменьшения адресов, а когда DF = 0 — наоборот.
OF — флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей арифметической операции над числами со знаком выходит за допустимые для них пределы. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице (то есть отрицательное) и наоборот.
Ответ от Xoodoo[гуру]
для контроля за результатами выполнения маш. инструкций
для контроля за результатами выполнения маш. инструкций
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Для чего нужны флаги в ассемблере?
спросили в Spantax User am
Что делать если игра subnautica вылетает при запуске новой игры, даже если все системные требования подходят?
Для начала описать подробно, какая ошибка и как вылетает. Потом уже писать сюда, если гугл не
подробнее...
Что делать если игра subnautica вылетает при запуске новой игры, даже если все системные требования подходят?
Для начала описать подробно, какая ошибка и как вылетает. Потом уже писать сюда, если гугл не
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в User got User got 0
GTA San Andreas не запускается GTA SA не запускается. Нажимаю на ярлык запуска идёт загрузка но ничего не происходит, не
Может настройки слетели?
Попробуй удалить gta_sa.set в Мои ДокументыGTA San Andreas User
подробнее...
GTA San Andreas не запускается GTA SA не запускается. Нажимаю на ярлык запуска идёт загрузка но ничего не происходит, не
Может настройки слетели?
Попробуй удалить gta_sa.set в Мои ДокументыGTA San Andreas User
подробнее...