【问题标题】:X86 IDIV sign of remainder depends on sign of dividend for 8/-3 and -8/3?X86 IDIV 余数符号取决于 8/-3 和 -8/3 的除数符号?
【发布时间】:2018-12-29 03:37:41
【问题描述】:

谁能为我解释为什么在这些情况下余数的符号不同?这是模拟器的错误还是真正的 CPU 也会这样做?

8 / -3 : quotient(AL) = -2 remainder(AH) =  2
-8 / 3 : quotient(AL) = -2 remainder(AH) = -2

【问题讨论】:

标签: assembly x86-16 integer-division emu8086


【解决方案1】:

它应该是这样工作的,尽管通过阅读文档很难找到:

非整数结果被截断(截断)到 0。

结合“除法”X = dq + r(被除数是除数乘以商加上余数),我们发现因此余数r = X - d truncate(X / d)

这表明余数取决于被除数的符号,而不取决于除数的符号。

【讨论】:

  • 感谢您的解释,非常容易理解!
猜你喜欢
  • 1970-01-01
  • 2016-07-14
  • 2012-02-02
  • 2017-02-07
  • 2013-09-29
  • 1970-01-01
  • 2014-08-06
  • 2023-03-12
相关资源
最近更新 更多