SBB - 帶借位整數減法

操作碼

指令

說明

1C ib

SBB AL,imm8

將 AL 帶借位減去 imm8

1D iw

SBB AX,imm16

將 AX 帶借位減去 imm16

1D id

SBB EAX,imm32

將 EAX 帶借位減去 imm32

80 /3 ib

SBB r/m8,imm8

r/m8 帶借位減去 imm8

81 /3 iw

SBB r/m16,imm16

r/m16 帶借位減去 imm16

81 /3 id

SBB r/m32,imm32

r/m32 帶借位減去 imm32

83 /3 ib

SBB r/m16,imm8

r/m16 帶借位減去符號擴充套件的 imm8

83 /3 ib

SBB r/m32,imm8

r/m32 帶借位減去符號擴充套件的 imm8

18 /r

SBB r/m8,r8

r/m8 帶借位減去 r8

19 /r

SBB r/m16,r16

r/m16 帶借位減去 r16

19 /r

SBB r/m32,r32

r/m32 帶借位減去 r32

1A /r

SBB r8,r/m8

r8 帶借位減去 r/m8

1B /r

SBB r16,r/m16

r16 帶借位減去 r/m16

1B /r

SBB r32,r/m32

r32 帶借位減去 r/m32

說明

將源運算元(第二個運算元)與進位 (CF) 標誌相加,然後從目標運算元(第一個運算元)減去此結果。減法的結果儲存到目標運算元。目標運算元可以是暫存器或記憶體位置;源運算元可以是立即數、暫存器或記憶體位置。(不過,不能在一條指令中使用兩個記憶體運算元)。CF 標誌的狀態代表上一個減法的借位。

將立即數用作運算元時,它按照符號擴充套件方式擴充套件到目標運算元格式的長度。

SBB 指令不區分有符號或無符號運算元。相反,處理器計算兩種數據型別的結果,並分別通過將 OF 與 CF 標誌設定為 1 來表示有符號或無符號結果的借位。SF 標誌表示有符號結果的符號。

SBB 指令通常作為多位元組或多字減法的一部分執行,此時 SUB 指令後面跟著 SBB 指令。

操作

DEST DEST - (SRC + CF);

影響的標誌

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

保護模式異常

#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) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。