网站www.doc.ic.ac.uk说
如果2的补数相减,并且它们的符号不同,则当且仅当结果与减数的符号相同时才会发生溢出。 发生溢出如果 (+A) − (−B) = −C (−A) − (+B) = +C
如果2的补数相减,并且它们的符号不同,则当且仅当结果与减数的符号相同时才会发生溢出。
发生溢出如果
(+A) − (−B) = −C (−A) − (+B) = +C
在表达式中 0x00 - 0x80 == 0x80 应该不会溢出,因为:
0x00 - 0x80 == 0x80
0000 0000 - 1000 0000 --------- [1]1000 0000
减数 MSB (0) != 减数 MSB (1) && 减数 MSB (1) == 结果 MSB (1)
但是ALU模拟器没有显示溢出