Assembly x86中的操作完成时是否设置了标志?

Assembly x86中的操作完成时是否设置了标志?,assembly,x86,Assembly,X86,假设 使用GAS语法中的上述汇编代码执行。此代码是否使用AND结果设置ZF/SF/PF标志?或者这段代码只包含两个操作数,而对标志不做任何处理 我知道有设置标志的测试和CMP指令,但如果我只使用和来设置标志,代码会更短。标志将受到影响。实际上,几乎任何执行算术/位/逻辑运算的指令都会修改标志寄存器 我建议您阅读《英特尔开发人员手册》以查找此信息。大多数(如果不是全部的话)关于x86体系结构和指令的问题都可以通过使用它来回答 和指令保留未定义的AF标志,清除CF和OF标志,如果结果的低字节具有奇数

假设

使用GAS语法中的上述汇编代码执行。此代码是否使用AND结果设置ZF/SF/PF标志?或者这段代码只包含两个操作数,而对标志不做任何处理


我知道有设置标志的测试和CMP指令,但如果我只使用和来设置标志,代码会更短。

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

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


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

语法不设置任何标志。有关相应说明的作用,请参见手册。@harold我编辑了我的标题。感谢您提供的信息。事实上,英特尔手册(您可以在[x86]标记信息页面上找到链接)列出了每条指令受影响的标志。在那里查一下就可以了。我投票把这个问题作为离题题来结束,因为它问的是一条在相关文档中很容易查到的信息。@Michael:IMHO,对OP的更好回答是提供一个指向Intel或AMD文档的链接。更具体地说,是符号标志(
SF
)当且仅当设置了结果的最高有效位时,才会设置零标志(
ZF
),如果整个结果为零,则设置奇偶校验标志(
PF
),如果最低有效字节中的设置位数为奇数,则设置奇偶校验标志,少数例外情况之一是不设置标志的
not
指令。。。
andl %ecx %edx