AAM - 乘之後 AX ASCII 調整

操作碼

指令

說明

D4 0A

AAM

執行乘法之後,對 AX 進行 ASCII 調整

D4 ib

(無助記符)

執行乘法之後,按基數 imm8 調整 AX

說明

調整兩個非壓縮 BCD 值相乘的結果,以產生一對非壓縮的(基數為 10)BCD 值。AX 暫存器是此指令隱含的源運算元與目標運算元。AAM 指令僅用在將兩個非壓縮 BCD 值相乘(二進制乘法),並將字結果儲存到 AX 暫存器的 MUL 指令之後。接著,AAM 指令通過調整 AX 暫存器的內容,使之包含正確的 2 位數非壓縮(基數為 10)BCD 結果。

此指令的通用版本按照任何基數調整 AX 的內容(請參閱下面的“操作”部分)。這裡,imm8 位元組設定為所選的基數(例如,08H 表示八進制、0AH 表示十進制或 0CH 表示 12 進位制)。所有的彙編器都將 AAM 助記符解釋為調整成 ASCII(基數為 10)值。要按照其它基數對值進行調整,必須手工編寫此指令的機器程式碼 (D4 imm8)。

操作

tempAL AL;
AH tempAL / imm8; (* imm8 is set to 0AH for the AAD mnemonic *)
AL tempAL MOD imm8;

立即數 (imm8) 取自指令的第二個位元組。

影響的標誌

SF、ZF 及 PF 標誌根據結果設定。OF、AF 及 CF 標誌未定義。

異常(所有操作模式)

預設立即數 0AH 不會產生異常。不過,如果使用立即數 0,則會導致 #DE(除法錯誤)異常。