二进制编码的十进制指令至少来自i8086是x86架构的一部分.它们类似于AAA,DAA,AAS,DAS,并且有助于处理BCD数字的算术运算.
以下是它们的一些参考:
https://en.wikipedia.org/wiki/Intel_BCD_opcode
根据英特尔软件开发人员手册.这些指令在长(64位)模式下不可用.我知道也许唯一真正知道为什么是建筑设计师的人,但为什么你认为他们删除它们?
答案就在你的链接中:
使用这些操作码添加 BCD 数字是一项复杂的任务,甚至需要许多指令才能添加适度的数字。它还可能需要大量内存。
所有整数计算都是精确的,因此数字表示的基数对于准确性并不重要。因此,即使是今天的金融软件也通常以二进制表示形式存储值,并且仅转换为十进制进行输入和输出。
在 x86 处理器上,使用二进制数进行的计算通常比使用 BCD 数进行相同的计算要快得多。
至于为什么操作码从 x86_64 中删除,即使该功能仍然存在于硬件中(尽管可能以微代码实现),根据 Raymond Chen 的评论:
它们释放了宝贵的 1 字节操作码以供将来使用。