AAD - 除之前 AX ASCII 調整

操作碼

指令

說明

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 標誌未定義。

異常(所有操作模式)

無。