DEC - 遞減 1

操作碼

指令

說明

FE /1

DEC r/m8

r/m8 遞減 1

FF /1

DEC r/m16

r/m16 遞減 1

FF /1

DEC r/m32

r/m32 遞減 1

48+rw

DEC r16

r16 遞減 1

48+rd

DEC r32

r32 遞減 1

說明

將目標運算元減 1,同時保持 CF 標誌的狀態不變。目標運算元可以是暫存器或記憶體位置。此指令可用於在不影響 CF 標誌的情況下更新循環計數器。(要執行會更新 CF 標誌的遞減操作,請使用帶立即數運算元 1 的 SUB 指令)。

操作

DEST DEST -1;

影響的標誌

CF 標誌不受影響。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) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。