gpt4 book ai didi

assembly - 为什么 x86(-64) 上的有符号和无符号乘法指令不同?

转载 作者:行者123 更新时间:2023-12-03 11:11:34 24 4
gpt4 key购买 nike

我认为 2 的补码的全部意义在于,对于有符号数和无符号数,操作可以以相同的方式实现。 Wikipedia even specifically lists multiply as one of the operations that benefits .那么为什么 x86 对每个都有单独的指令,mulimul ?对于 x86-64,这仍然适用吗?

最佳答案

加法和减法是一样的,乘法的低半部分也是一样。然而,完整的乘法不是。简单的例子:

在 32 位二进制补码中,-1 与无符号量 2**32 - 1 具有相同的表示形式。但是:

-1 * -1 = +1
(2**32 - 1) * (2**32 - 1) = (2**64 - 2**33 + 1)

(请注意,两个结果的低 32 位是相同的;这就是我说“乘法的低一半”是相同的意思)。

关于assembly - 为什么 x86(-64) 上的有符号和无符号乘法指令不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14063599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com