将汇编代码从32位迁移到64位问题

时间:2010-08-19 21:26:21

标签: 64-bit operating-system intel 32-bit

我负责一些我继承的应用程序级代码,它有一些基于32位指令和寻址的x86 ... Intel汇编代码。我将假设当我们迁移64位Windows操作系统时,这个32位汇编代码将运行。是

4 个答案:

答案 0 :(得分:2)

它可能会运行,但它不会利用x86 asm提供的64位扩展提供的任何功能(x86-64,这是Windows的所有“64位”版本)或者是能够与x64库紧密互操作。 WoW64层非常稳定,99.999%的32位应用程序在当前的“64位”操作系统上运行良好。

如果你想迁移到真正的64位操作系统(我所知道的只有基于Itanium的,ia64),那你就不走运了。

编辑:此外,如果你想启用大地址访问(能够使用> 4gb的RAM),你可以翻转一个PE标题标志,将其打开并允许它处理更大量的内存。

答案 1 :(得分:0)

很可能,它会运行; 64位Windows支持32位模式的应用程序,它通常非常可靠。 (显然,这些事情从来都不是百分之百 - 但是 - 告诫者。)

答案 2 :(得分:0)

是。 32位代码将在64位计算机上运行,​​但它们将无法访问超过4 GiB的RAM。

答案 3 :(得分:0)

如果继续构建32位x86应用程序,它将运行。但是,如果必须将代码移植到64位x86,则可能是汇编代码无法运行(甚至可能无法编译)。

根据您的工具链以及它是否是C / C ++代码中的内联汇编程序,您甚至根本无法编译它。