Выход из цикла по флагу ZF - Assembler
Формулировка задачи:
Здравствуйте! Возник такой вопрос по этому коду:
Пройдя через отладчик получаются такие значения:
Входные данные: 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.
Программа работает правильно, интересно почему она работает
m2: inc cl shr al, 1 jnz m2
Решение задачи: «Выход из цикла по флагу ZF»
textual
Листинг программы
m2: dec cx jnz m2; или loop m2
Объяснение кода листинга программы
В данном коде происходит следующее:
- Переменная
CX
уменьшается на единицу. - Если
CX
не равен нулю, то происходит переход к меткеm2
. - Если
CX
равен нулю, то происходит выход из цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д