【发布时间】:2016-08-10 07:14:49
【问题描述】:
由于文档并没有真正描述标志是如何受到影响的,所以我无法弄清楚在子指令期间进位和带符号标志之间的区别,似乎每当 sub a, b 中的 a
【问题讨论】:
-
是的,当然。
sub 1, 2将产生结果-1,它在有符号时很好(没有溢出),但在无符号时会环绕(因此进位)。 -
AFAIK,英特尔文档确实描述了哪些标志会受到影响。
由于文档并没有真正描述标志是如何受到影响的,所以我无法弄清楚在子指令期间进位和带符号标志之间的区别,似乎每当 sub a, b 中的 a
【问题讨论】:
sub 1, 2 将产生结果-1,它在有符号时很好(没有溢出),但在无符号时会环绕(因此进位)。
是否存在在子指令期间设置有符号标志而不带进位(反之亦然)的情况?
当然:
mov al,0xFE
sub al,2
结果是 0xFC,当被视为有符号的 8 位时,它是 -4。所以SF会被设置,buf CF会被清空(进位可以看成“无符号小于”,0xFE显然不是无符号小于2)。
【讨论】: