NEG - 二的補碼取反

操作碼

指令

說明

F6 /3

NEG r/m8

r/m8 執行二的補碼取反

F7 /3

NEG r/m16

r/m16 執行二的補碼取反

F7 /3

NEG r/m32

r/m32 執行二的補碼取反

說明

將運算元(目標運算元)的值替換成它的二的補碼。(此操作等價于從 0 減去運算元)。目標運算元在通用暫存器或記憶體位置中。

操作

IF DEST 0
THEN CF 0
ELSE CF 1;
FI;
DEST - (DEST)

影響的標誌

如果源運算元是 0,則 CF 標誌清除為 0;否則設定為 1。OF、SF、ZF、AF 及 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) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。