我想寫一個解決rsa挑戰(是的,我有有趣的目標)的程序,目前我沒有64位的linux盒子,我真的不想花我的時間寫一個程序,沒有機會完成。所以雖然我可以做一些彙編編程,但我更喜歡使用C++。然而,我也會對如何使用內聯彙編來做同樣的事情感興趣。 這裏的計劃是使用16位64位通用寄存器和128位sse寄存器來完成(真的很長)整數數學。所以任何幫助如何做到這一點將不勝感激。如何在Visual Studio中使用處理器寄存器?
1
A
回答
3
基於對BarsMonsters雁,你並不需要得到更接近CPU的評論,你需要一個大的整數庫。
一個選項是gmp,其中包括任意整數運算。它具有很好的算法,例如乘以大整數,一個好的編譯器會比大多數人更好地優化它。
可能讓你尋找一個替代的主要問題是,它支持可變精度算術,這可能是架空你寧願避免,如果你肯定知道你的號碼最多有512個二進制數字。即便如此,你可能也想看看算法,而不是低級別的技巧(長乘法在這個尺寸下可能已經是一個不錯的選擇),而且我相當確信讓你的編譯器進行優化會更好。
我的建議 - 花時間這樣做,需要人類的智慧,而不是東西,一臺機器可以做的更一致和十億倍的速度的東西。
如果你真的可以優化機器代碼比編譯器可以下載LLVM和執行邏輯優化傳遞所以我們都可以得到好處;-)
2
所有現代compillers都在重複使用所有可用的寄存器產生最快的代碼非常好。
特別是英特爾C++和GCC3 - 他們通常手動創建代碼無與倫比的代碼。
BTW,看看這個:Why does MSVC not support inline assembly for AMD64 and Itanium targets?
2
如果你只想做一些precission更好數學,你最好試試英特爾C++編譯器並使用它的數學庫,它非常強大並且過度優化。 Boost數學庫也一樣。這可能會使你的工作減少90%:-)它們確實支持任意的精確數字。
相關問題
- 1. 處理器寄存器
- 2. 如何使用gdb轉儲ARM協處理器寄存器?
- 3. 如何在x86處理器中讀取標誌寄存器
- 4. 如何在kprobe中使用寄存器?
- 5. autofac中的寄存器處理程序
- 6. 在C#中使用Visual Studio 2010中的預處理器指令
- 7. ARM Neon Assembler - 處理溢出寄存器
- 8. AVX寄存器如何由通用調用約定來處理?
- 9. C中如何使用寄存器?
- 10. Visual Studio 6處理器包啓用SSE2
- 11. 在Visual Studio 2008中使用_DEBUG預處理器定義 - C++
- 12. 使用預處理器指令在Visual Studio中調試WindowsService #if
- 13. 編譯器/彙編程序如何理解處理器內核寄存器?
- 14. 如何在Visual Studio中指定預處理器選項
- 15. ARM7處理器何時增加其PC寄存器?
- 16. IA32-86使用專用寄存器作爲通用寄存器
- 17. 使用FPU和MMX寄存器作爲「通用寄存器」
- 18. 如何從命令行調用Visual Studio預處理器?
- 19. Visual Studio 2008的預處理器wierdness
- 20. 無效使用寄存器
- 21. 如何讓Visual Studio 2010在編譯時使用多個處理器內核?
- 22. 如何在LLVM中保留寄存器?
- 23. 使用Saxon .NET XSLT處理器無法在Visual Studio中使用intellisense
- 24. 新的X86_64處理器寄存器的名稱是什麼?
- 25. 如何在visual studio中使用優化器和分析器
- 26. 爲什麼沒有處理器有不對稱寄存器?
- 27. XOR寄存器,寄存器(彙編)
- 28. 通用寄存器
- 29. Visual Studio是否具有像Emacs寄存器那樣的功能?
- 30. 如何使用gdb獲取存儲在寄存器中的值? 「p/x $ ebx」因「沒有寄存器」而失敗。
我不確定你是否熟悉rsa挑戰,但是我對這件事的態度與最近成功的不同。無論哪種方式,我乘以2個數字,然後將結果與我想要的因子進行比較。我想要的數字大約有750個二進制數字。 無論如何,gmp看起來很有前途,只是不確定如何在Visual Studio中使用它。 – xyious 2010-02-18 05:28:06
它應該是便攜式C++包裝中的可移植C代碼。我自己並沒有使用它 - 僥倖,這是我最近下載的東西,但還沒有使用 - 但如果你不能使用它,我會感到驚訝。 – Steve314 2010-02-18 05:58:00
實際上有一個端口,應該與視覺工作室,我現在正在嘗試它....需要YASM它,但安裝後,該解決方案加載沒有問題(抱歉,但這是迄今爲止,我得到了遠)。 鏈接:http://www.mpir.org/ – xyious 2010-02-18 06:57:30