Инкремент, не работает флаг переполнения - Assembler
Формулировка задачи:
Доброго времени суток.
Буду краток. Есть код:
В отладчике наблюдаю что флаг OF не выставляется. Хотя в документации написано:
mov eax, 0ffffffffh inc eax jo exit
The CF flag is not affected. The OF, SF, ZF, AF , and PF flags are set according to the result.
Т.е. флаг OF должен выставляться. Объясните что я делаю не так. Заранее благодарен.Решение задачи: «Инкремент, не работает флаг переполнения»
textual
Листинг программы
mov edx,100 @@rep: . . . clc/stc/cmc/cmp... . . . dec edx ja @@rep ; повторяем, пока EDX > 0 и CF=0
Объяснение кода листинга программы
- Устанавливается значение переменной
edx
равным 100. - Создается метка
@@rep
. - Выполняется некоторый код (обозначенный как
...
) внутри цикла. - Используется одна из инструкций
clc
,stc
,cmc
,cmp
для установки флагов состояния процессора. - Выполняется инструкция
dec edx
, которая уменьшает значение переменнойedx
на 1. - Проверяется условие: значение переменной
edx
больше нуля и флаг переноса (CF) равен 0. - Если условие выполняется, то происходит переход на метку
@@rep
и код внутри цикла выполняется снова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д