ХАНДЫФАР
Инструкция AAM
Корректировка регистра AX после умножения
AAM - Корректировка регистра AX после умножения
AAM imm8 - Корректировка регистр AX после умножением на числовое основание imm8
Корректирует результат умножения двух распакованных значений BCD для создания пары распакованных значений BCD (база 10). Регистр ax является подразумеваемым исходным и целевым операндом для этой инструкции. Инструкция aam полезна только тогда, когда она следует за инструкцией mul, которая умножает два распакованных значения BCD и сохраняет результат слова в регистре ax. Затем инструкция aam корректирует содержимое регистра ax таким образом, чтобы оно содержало правильный 2-значный результат распакованного значения (база 10) BCD.
Обобщённая версия этой инструкции позволяет корректировать содержимое ax для создания двух неупакованных цифр любой числовой базы. Здесь байт imm8 устанавливается в выбранную базу чисел (например, 08h для восьмеричной системы счисления, 0Ah для десятичной системы счисления или 0Ch для чисел с основанием 12). Мнемоника aam интерпретируется всеми ассемблерами как означающая адаптацию к значениям ASCII (база 10). Для корректировки на значения в другой базе чисел инструкция должна быть закодирована вручную машинным кодом (D4 imm8).
Флаги SF, ZF и PF устанавливаются в соответствии с результирующим двоичным значением в регистре al. Флаги OF, AF и CF не определены.
Предположим, что регистр al содержит 1310, (0D16), регистр bl содержит 210, (0216). После выполнения mul bl регистр al будет содержать 2610, (1A16). Затем выполняется инструкция aam которая выполняет корректировку регистра al. В результате регистр ax содержит 020616. 13 * 2 = 26.
Инструкция AAM
Корректировка регистра AX после умножения
__________AAM - Корректировка регистра AX после умножения
__________AAM imm8 - Корректировка регистр AX после умножением на числовое основание imm8
Корректирует результат умножения двух распакованных значений BCD для создания пары распакованных значений BCD (база 10). Регистр ax является подразумеваемым исходным и целевым операндом для этой инструкции. Инструкция aam полезна только тогда, когда она следует за инструкцией mul, которая умножает два распакованных значения BCD и сохраняет результат слова в регистре ax. Затем инструкция aam корректирует содержимое регистра ax таким образом, чтобы оно содержало правильный 2-значный результат распакованного значения (база 10) BCD.
Обобщённая версия этой инструкции позволяет корректировать содержимое ax для создания двух неупакованных цифр любой числовой базы. Здесь байт imm8 устанавливается в выбранную базу чисел (например, 08h для восьмеричной системы счисления, 0Ah для десятичной системы счисления или 0Ch для чисел с основанием 12). Мнемоника aam интерпретируется всеми ассемблерами как означающая адаптацию к значениям ASCII (база 10). Для корректировки на значения в другой базе чисел инструкция должна быть закодирована вручную машинным кодом (D4 imm8).
Флаги SF, ZF и PF устанавливаются в соответствии с результирующим двоичным значением в регистре al. Флаги OF, AF и CF не определены.
Предположим, что регистр al содержит 1310, (0D16), регистр bl содержит 210, (0216). После выполнения mul bl регистр al будет содержать 2610, (1A16). Затем выполняется инструкция aam которая выполняет корректировку регистра al. В результате регистр ax содержит 020616. 13 * 2 = 26.