2010-11-20 33 views
4

我有一個好奇心的問題。在32位CPU上執行Int64

Int64如何實現32位處理器?我可以看到三個選項

  1. 32位處理器具有某種擴展的,允許64位算術
  2. Int64是它在CLR中,這通過使用32個操作
  3. 實現64個算術完全實現一些 32位處理器可以執行64位算術運算並且CLR使用這個邏輯。在其他處理器上,CLR回退到它自己的64位邏輯實現。

第一種情況看起來不合理,因爲它意味着64位處理器現在應該能夠執行128位算術運算。第二個提出瞭如何有效地完成的問題。第三個看起來要團結兩種方法的最壞特徵。

回答

6
  • 的Intel x86處理器像老奔騰(如32位處理器的一個例子)一直能夠做的64位算術和甚至128位算術時間長(XMMM0-XMM7例如)的。
  • 僅使用32位寄存器的64位算術很好documented
  • CLR的平臺特定實現可以自由地實現上述之一或者實現其他功能來滿足要求。
+0

主題討論32位寄存器上的64位算術只包含加法。我主要想到乘法和除法。 – 2010-11-20 01:26:43

+0

好的,我找到了[乘法和除法](http://webster.cs.ucr.edu/AoA/Windows/HTML/AdvancedArithmetica2.html)。 – 2010-11-20 12:56:48

相關問題