2015-10-17 45 views
4

二進制編碼的十進制指令是x86體系結構的一部分,至少是i8086的一部分。它們就像AAA,DAA,AAS,DAS一樣,並且有助於使用BCD碼進行算術運算。爲什麼BCD指令在AMD64中被刪除?

以下是他們的一些參考:

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

根據英特爾的軟件開發人員手冊。這些指令在長(64位)模式下不可用。我知道也許是唯一真正知道爲什麼是建築設計師的人,但你爲什麼認爲他們將他們刪除?

回答

2

答案就在你的鏈接:

使用這些操作碼添加BCD號碼是一項複雜的任務,需要 許多指令添加,甚至適度的號碼。它也可能需要大量的內存。

所有的整數計算都是精確的,所以表示數字的基數對精度來說並不重要。因此,即使今天的財務軟件通常以二進制 表示存儲值,並且只能將輸入和輸出轉換爲十進制。

在x86處理器上,使用二進制數的計算通常比使用BCD編號的相同計算快很多 。

+0

因此,他們簡單地刪除它,因爲是沒有用了嗎? – felknight

+0

@Felipe沒有人使用它們,它們佔用了芯片空間並增加了處理器的複雜性。 – Mysticial

+0

還有什麼困擾我的是,它們可以在16位和32位模式下使用。他們仍然在芯片上,爲什麼要從64位模式中刪除? – felknight