我想写一个解决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