英特尔组装中“相应设置”的含义是什么意思?

时间:2016-11-08 03:20:34

标签: assembly x86 x86-64

以下是我在Intel x86-64的文档中看到的令人困惑的否定指令。

OF SF ZF AF PF 根据结果​​设置标志。“

我假设sf = dest < 0zf = dest == 0,但无法弄清楚其他标志是如何设置的。

我看到“根据结果”短语设置无处不在,并感谢您帮助理解它的含义。我正在研究编译器,所以信息肯定很重要。

1 个答案:

答案 0 :(得分:5)

所以所有的标志都是根据执行的操作设置的,这就是短语&#34;根据结果设置的#34;装置

  

3.4.3.1状态标志

     

EFLAGS寄存器的状态标志(位0,2,4,6,7和11)表示算术指令的结果,例如ADD,SUB,MUL和DIV指令。状态标志功能是:

     
      
  • CF(位0)进位标志 - 设置算术运算是否从结果的最高位产生进位或借位;否则清除。该标志表示无符号整数运算的溢出条件。它也用于多精度算术。
  •   
  • PF(第2位)AF(第4位)辅助进位标志 - 如果算术运算产生结果的第3位的进位或借位,则置位;否则清除。该标志用于二进制编码的十进制(BCD)算法。
  •   
  • ZF(第6位)零标志 - 如果结果为零则设置;否则就清楚了。
  •   
  • SF(第7位)符号标志 - 设置等于结果的最高有效位,即有符号整数的符号位。 (0表示正值,1表示负值。)
  •   
  • OF(第11位)溢出标志 - 设置整数结果是否过大,正数或过小的负数(不包括符号位)以适合目标操作数;否则清除。该标志表示有符号整数(二进制补码)算术的溢出条件。
  •   
     

在这些状态标志中,只能使用STC,CLC和CMC指令直接修改CF标志。位指令(BT,BTS,BTR和BTC)也将指定位复制到CF标志中。

只能直接修改CF标志。其他根据操作设置。

Source - Intel

相关问题