【问题标题】:Sub instruction and affected flags on x86: can SUB set SF != CF?x86 上的子指令和受影响的标志:SUB 可以设置 SF != CF 吗?
【发布时间】:2016-08-10 07:14:49
【问题描述】:

由于文档并没有真正描述标志是如何受到影响的,所以我无法弄清楚在子指令期间进位和带符号标志之间的区别,似乎每当 sub a, b 中的 a

【问题讨论】:

  • 是的,当然。 sub 1, 2 将产生结果-1,它在有符号时很好(没有溢出),但在无符号时会环绕(因此进位)。
  • AFAIK,英特尔文档确实描述了哪些标志会受到影响。

标签: assembly x86 eflags


【解决方案1】:

是否存在在子指令期间设置有符号标志而不带进位(反之亦然)的情况?

当然:

mov al,0xFE
sub al,2

结果是 0xFC,当被视为有符号的 8 位时,它是 -4。所以SF会被设置,buf CF会被清空(进位可以看成“无符号小于”,0xFE显然不是无符号小于2)。

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2015-10-30
    • 2013-07-20
    相关资源
    最近更新 更多