指令若不影響某標志位,該標志位保持執行前的值(0 仍 0,1 仍 1)。
MOV AL, 0 為例MOV 不修改 CF、OF、SF、ZF、AF、PF 中的任何一位(Intel 手冊明確列出「Flags affected: None」)。CF=0, OF=0 → 執行後仍 CF=0, OF=0。MOV 到段寄存器/控制寄存器/調試寄存器可能觸發保護異常,但不改變算術標志位。| 指令類別 | 示例 |
|---|---|
| 數據傳送 | MOV, PUSH, POP, XCHG, LEA, LDS/LES/LFS/LGS/LSS |
| 控制轉移 | JMP, CALL, RET, LOOP, Jcc (條件跳轉本身不改標志) |
| 字符串 | MOVS, CMPS, SCAS, LODS, STOS (REP 前綴不影響) |
| I/O | IN, OUT |
| 系統 | HLT, NOP, WAIT, ENTER, LEAVE |
ADD, SUB, INC, DEC, AND, OR, XOR, TEST, CMP, SHL/SHR, RCL/RCR/ROL/ROR 等算術/邏輯/移位指令會根據結果更新 SF、ZF、CF、OF、PF、AF。