ADC - 帶進位加法

操作碼

指令

說明

14 ib

ADC AL,imm8

帶進位將 imm8 加到 AL 上

15 iw

ADC AX,imm16

帶進位將 imm16 加到 AX 上

15 id

ADC EAX,imm32

帶進位將 imm32 加到 EAX 上

80 /2 ib

ADC r/m8,imm8

帶進位將 imm8 加到 r/m8

81 /2 iw

ADC r/m16,imm16

帶進位將 imm16 加到 r/m16

81 /2 id

ADC r/m32,imm32

帶 CF 將 imm32 加到 r/m32

83 /2 ib

ADC r/m16,imm8

帶 CF 將符號擴充套件的 imm8 加到 r/m16

83 /2 ib

ADC r/m32,imm8

帶 CF 將符號擴充套件的 imm8 加到 r/m32

10 /r

ADC r/m8,r8

帶進位將位元組暫存器加到 r/m8

11 /r

ADC r/m16,r16

帶進位將 r16 加到 r/m16

11 /r

ADC r/m32,r32

帶 CF 將 r32 加到 r/m32

12 /r

ADC r8,r/m8

帶進位將 r/m8 加到位元組暫存器上

13 /r

ADC r16,r/m16

帶進位將 r/m16 加到 r16

13 /r

ADC r32,r/m32

帶 CF 將 r/m32 加到 r32

說明

將目標運算元(第一個運算元)、源運算元(第二個運算元)以及進位 (CF) 標誌相加,結果儲存到目標運算元。目標運算元可以是暫存器或記憶體位置;源運算元可以是立即數、暫存器或記憶體位置。(不過,不能在一條指令中使用兩個記憶體運算元)。CF 標誌的狀態代表上一次加法的進位。將立即數用作運算元時,它按照符號擴充套件方式擴充套件到目標運算元格式的長度。

ADC 指令不區分有符號或無符號運算元。相反,處理器計算兩種數據型別的結果,並分別設定 OF 與 CF 標誌以表示有符號或無符號結果的進位。SF 標誌表示有符號結果的符號。

ADC 指令通常作為多位元組或多字加法的一部分執行,此時 ADC 指令跟在 ADD 指令後面。

操作

 

DEST DEST + SRC + CF;

影響的標誌

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

保護模式異常

#GP(0) - 如果目標運算元位於不可寫的段。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS、或 GS 暫存器用於訪問記憶體,並且它包含空的段選擇器。

#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。

#PF(錯誤程式碼) - 如果發生頁錯誤。

#AC(0) - 如果在目前特權級別為 3 且啟用對齊檢查的情況下進行未對齊的記憶體引用。

實地址模式異常

#GP - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS - 如果記憶體運算元有效地址超出 SS 段限制。

虛 8086 模式異常

#GP(0) - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。

#PF(錯誤程式碼) - 如果發生頁錯誤。

#AC(0) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。