繁体   English   中英

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

[英]Why BCD instructions were removed in AMD64?

二进制编码的十进制指令至少在i8086中是x86体系结构的一部分。 它们类似于AAA,DAA,AAS,DAS,并有助于对BCD编号进行算术运算。

这里是它们的一些参考:

https://zh.wikipedia.org/wiki/英特尔_BCD_opcode

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

答案在您的链接中:

使用这些操作码添加BCD号码是一项复杂的任务,需要很多指令才能添加适度的号码。 它还可能需要大量内存。

所有整数计算都是精确的,因此数字表示的基数对于准确性并不重要。 因此,即使是当今的财务软件,通常也以二进制表示形式存储值,并且只能将其转换为输入和输出的小数。

在x86处理器上,使用二进制数进行计算通常比使用BCD数进行相同计算要快得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM