gpt4 book ai didi

assembly - 为什么AMD64中删除了BCD指令?

转载 作者:行者123 更新时间:2023-12-02 18:52:45 24 4
gpt4 key购买 nike

至少从 i8086 开始,二进制编码的十进制指令是 x86 架构的一部分。它们类似于 AAA、DAA、AAS、DAS,有助于对 BCD 数字进行算术运算。

以下是它们的一些引用:

https://en.wikipedia.org/wiki/Intel_BCD_opcode

根据英特尔软件开发人员手册。这些指令在长(64 位)模式下不可用。我知道也许唯一真正知道为什么是架构设计师的人,但你认为他们为什么要删除它们?

最佳答案

答案在您的链接中:

Adding BCD numbers using these opcodes is a complex task, and requiresmany instructions to add even modest numbers. It can also require alarge amount of memory.

All integer calculations are exact, so the radix of the numberrepresentation is not important for accuracy. Therefore, evenfinancial software today usually stores values in binaryrepresentation and only converts to decimal for input and output.

On an x86 processor calculations with binary numbers are usually a lotfaster than the same calculations with BCD numbers.

至于为什么操作码从 x86_64 中删除,即使该功能仍然存在于硬件中(尽管可能以微码实现),根据 Raymond Chen 的评论:

They free up valuable 1-byte opcodes for future use.

关于assembly - 为什么AMD64中删除了BCD指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33182491/

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