Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Команда AAA и флаг AF


Автор: Kano 23.2.2009, 12:07
Например, есть 2 цифры десятично-двоичных чисел: 9h и 8h. Складываю их:
Код

format binary
use16
org 100h

MOV AL, 9h
ADD AL, 8h ; 9 + 8 = 17 (11h)
XOR AH, AH
AAA

INT 20h

После сложения по идее должно измениться значение флага AF на "1". Вот это не могу проверить -- работаю в отладчике TD и не вижу где можно значение этого флага посмотреть :(

После AAA в теории должно получиться так: AH = 1h, AL = 7h, т.е. AX = 0x0107h, не так ли? Но выходит, что AX = 0x0001h -- такое поведение, словно флаг AF был равен нулю перед применением AAA! Подскажите, пожалуйста, где же ошибка.

Автор: ФедосеевПавел 23.2.2009, 13:06
Команда XOR сбрасывает флаги CF и AF. Если хочешь очистить AH, то делай это или перед ADD (не скажеться на результате), или MOV AH, 0 (не влияет на флаги).

Автор: Kano 23.2.2009, 13:25
ФедосеевПавел, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)