在x86中完成AND操作时是否设置了标志?

时间:2015-09-07 08:46:29

标签: assembly x86

假设

andl %ecx %edx 
使用GAS语法中的上述汇编代码执行

。该代码是否会使用AND结果设置ZF / SF / PF标志?或者这个代码只是AND两个操作数并且对标志没有任何作用?

我知道有TEST和CMP指令设置标志,但如果我可以使用AND来设置标志,代码会更短。

1 个答案:

答案 0 :(得分:2)

旗帜会受到影响。实际上,几乎任何执行某些算术/按位/逻辑运算的指令都会修改标志寄存器。

我建议您阅读英特尔开发人员手册以查找此信息。大多数(如果不是全部)有关x86架构和指令的问题都可以通过使用来解答。

AND指令使AF标志未定义,清除CF和OF标志,如果结果的低字节具有奇数奇偶校验则设置PF,如果结果为负则设置SF(视为两个' s补码),如果结果为零则设置ZF。