操作碼 |
指令 |
說明 |
D5 0A |
AAD |
執行除法之前,對 AX 進行 ASCII 調整 |
D5 ib |
(無助記符) |
執行除法之前,按照基數 imm8 調整 AX |
調整兩個非壓縮 BCD 數字(AL 暫存器的最低有效位與 AH 暫存器的最高有效位),以便在結果上執行除法運算時,可以得到正確的非壓縮 BCD 值。AAD 指令僅用在將 AX 暫存器中經過調整的值除以(二進制除法)非壓縮的 BCD 值 DIV 指令之前。
AAD 指令將 AL 暫存器中的值設定為 (AL + (10 * AH)),然後將 AH 暫存器清除為 00H。這樣,AX 暫存器中的值就等於與暫存器 AH 與 AL 中原始非壓縮的兩位數(基數為 10)相等的二進制數。
通過將 imm8 位元組設定為所選的基數(例如,08H 表示八進制、0AH 表示十進制或 0CH 表示 12 進位制),此指令的通用版可以按照任何基數調整兩個非壓縮數字(請參閱下面的“操作”部分)。所有的彙編器都將 AAD 助記符解釋為調整成 ASCII(基數為 10)值。要按照其它基數對值進行調整,必須手工編寫此指令的機器程式碼 (D5 imm8)。
tempAL AL;
tempAH AH;
AL (tempAL + (tempAH * imm8)) AND FFH; (* imm8 is set to 0AH for the AAD mnemonic *)
AH 0
立即數 (imm8) 取自指令的第二個位元組。
SF、ZF 及 PF 標誌根據結果設定;OF、AF 及 CF 標誌未定義。
無。