在64位应用程序中使用为32位编写的汇编代码

时间:2011-06-25 20:08:03

标签: encryption assembly 64-bit

我可以在x86-64机器上的64位程序的32位x86下面的链接中使用汇编例程进行Serpent加密吗?也就是说,没有为它启动单独的32位进程?如果没有,有没有人有一个指向优化的Serpent实现的指针,它可以在32位和64位工作(LGPL是可以但不能使用GPL,因为它是一个商业项目)? http://gladman.plushost.co.uk/oldsite/cryptography_technology/serpent/serpent.asm

2 个答案:

答案 0 :(得分:3)

您需要转换将结果和数据传输到内存或从内存传输的代码部分,以使用64位地址寄存器。此外,堆栈操作代码将需要使用64位堆栈寄存器。除此之外,它可能会在没有重大变化的情况下发挥作用。

答案 1 :(得分:1)

这段代码似乎兼容,至少对我来说(一般来说,IA32程序集非常向后兼容,因为寄存器的大小不会改变,x86-64上只添加了新的代码)。此外,最好的方法是自己检查。