Выход из цикла по флагу ZF - Assembler

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

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

Здравствуйте! Возник такой вопрос по этому коду:
Листинг программы
  1. m2: inc cl
  2. shr al, 1
  3. jnz m2
Пройдя через отладчик получаются такие значения: Входные данные: CL = 0h AL = 20h Итерации: 1) cl = 1, al = 10h zf = 0 2) cl = 2, al = 8h zf = 0 3) cl = 3, al = 4h zf = 0 4) cl = 4, al = 2h zf = 0 5) cl = 5, al = 1h zf = 0 6) cl = 6, al = 0h zf = 1 Вопрос в том, что по условию jnz выход из этого куска кода будет при zf = 0. А у меня выход происходит при zf = 1. Программа работает правильно, интересно почему она работает

Решение задачи: «Выход из цикла по флагу ZF»

textual
Листинг программы
  1. m2: dec cx
  2.    jnz m2; или loop m2

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

В данном коде происходит следующее:

  1. Переменная CX уменьшается на единицу.
  2. Если CX не равен нулю, то происходит переход к метке m2.
  3. Если CX равен нулю, то происходит выход из цикла.

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут