8086MASM汇编深入理解指令对标志位的影响
文章目录
0. 指令对标志位影响
1. 指令对标志位影响速查表
CF | OF | SF | ZF | PF | AF | |
---|---|---|---|---|---|---|
传送指令mov , xchg , lea ,push , pop , in , out |
x | x | x | x | x | x |
算术指令add , adc , sub , sbb , cmp , neg |
o (当成无符号数运算有进位借位则CF=1) |
o (当成有符号数运算溢出则OF=1) |
o | o | o | o(低8位产生进位/高8位产生借位则AF=1) |
算术指令inc , dec |
x | o | o | o | o | x |
逻辑指令and , test , or , xor |
置cf=0 | 置of=0 | o | o | o | x |
逻辑指令not |
x | x | x | x | x | x |
移位指令shl =sal , shr , sar |
o (无论左移右移算数逻辑移出了1就CF=1) |
o (移位后最高位改变则OF=1) |
o | o | o | x |
循环移位rol , ror , rcl , rcr |
o (无论左移右移算数逻辑移出了1就CF=1) |
o (移位后最高位改变则OF=1) |
x | x | x | x |
2. flags标志寄存器: 标志位含义解读
flags
flags = [x, x, x, x, of(11), df(10), if(9), tf(8), sf(7), zf(6), x, af(4), x, pf(2), x, cf(0)]
1. 状态标志cf, pf, af, zf, sf, of
标志位 | 功能和取值 |
---|---|
cf | 进位标志(Carry Flag) |
pf | 奇偶标志(Parity Flag)。若PF=1,表示操作结果中“1”的个数为偶数,否则PF=0。这个标志位主要用于检查数据传送过程中的错误, 和方便软件实现奇偶校验。 |
af | 辅助 |