操作碼 |
指令 |
說明 |
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(除法錯誤)異常。