Инкремент, не работает флаг переполнения - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Буду краток. Есть код:
mov eax, 0ffffffffh
inc eax
jo exit
В отладчике наблюдаю что флаг OF не выставляется. Хотя в документации написано:

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

Объяснение кода листинга программы

  1. Устанавливается значение переменной edx равным 100.
  2. Создается метка @@rep.
  3. Выполняется некоторый код (обозначенный как ...) внутри цикла.
  4. Используется одна из инструкций clc, stc, cmc, cmp для установки флагов состояния процессора.
  5. Выполняется инструкция dec edx, которая уменьшает значение переменной edx на 1.
  6. Проверяется условие: значение переменной edx больше нуля и флаг переноса (CF) равен 0.
  7. Если условие выполняется, то происходит переход на метку @@rep и код внутри цикла выполняется снова.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5