是否可以在32位处理器的机器中运行64位代码?

时间:2014-01-13 19:25:07

标签: c compilation 32-bit cpu-registers processor

我已经四处寻找这些问题的答案。但运气不太好。

  1. 是否可以在32-bit的计算机上运行64-bit processor代码?

    答案似乎是肯定的。但由于32-bits未在处理器上闲置,因此存在关于性能问题的争论。

  2. 现在我的问题反之亦然,是否可以在64-bit处理器的机器中运行32-bit代码?

    从我的小小理解中,答案是否定的,因为设计的代码可以在64-bit上运行 将使用64-process registars,但32-bit机器仅提供32。

  3. 另一方面,我找到this link。据此,可以在32位机器上编译64位代码。但我不知道如何做到这一点加上如果在32-bit机器上进行编译也能保证execution。{/ p>

    感谢您提供帮助

1 个答案:

答案 0 :(得分:11)

  

是否可以在具有64位处理器的计算机中运行32位代码?

是。例如,这可以通过WOW64在Windows中处理。

  

现在我的问题反之亦然,是否可以在32位处理器的机器上运行64位代码?

没有。 64位代码需要64位指令集,这在32位处理器上不可用。

  

据此,可以在32位机器上编译64位代码。

您可以编译其他架构的代码,但不能执行它。这使您可以为当前正在执行的平台构建不同平台的代码,但执行它将无法正常工作。