Инкремент, не работает флаг переполнения - 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и код внутри цикла выполняется снова.