-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || 37 AAA 3 Преобразование к ASCII после || сложения |----------------------------------------------------------------- Работа команды
IF ((AL AND 0FH) > 9) OR (AF = 1) THEN AL <- (AL + 6) AND 0FH; AH <- AH + 1; AF <- 1; CF <- 1; ELSE CF <- 0; AF <- 0; FI;
Описание
Команда AAA должна выполняться только после команды ADD, помещающей байт результата в регистр AL. Младшие полубайты операндов команды ADD должны быть в диапазоне от 0 до 9 (двоично -десятичные цифры). В данном случае команда AAA преобразует регистр AL таким образом, чтобы он содержал правильный результат десятичной цифры. Если при сложении был выполнен десятичный перенос, то регистр AH инкрементируется, а флаги CF и AF устанавливаются. Если десятичного переноса не было, то флаги CF и AF очищаются, а регистр AH остается без изменений. В любом случае, регистр AL остается со старшим полубайтом, установленным равным 0. Для преобразования регистра AL в результат ASCII поместите после команды AAA команду OR AL,30H.
Изменяемые флаги
В случае десятичного переноса устанавливаются флаги AF и CF, а при отсутствии десятичного переноса эти флаги очищаются; флаги OF, SF, ZF и PF неопределены.
Исключения защищенного режима
Отсутствуют
Исключения режима реальных адресов
Отсутствуют
Исключения виртуального режима 8086
Отсутствуют