【发布时间】:2012-10-08 14:16:16
【问题描述】:
我在使用 windows vista x86 时在 FASM 中制作了一个简单的应用程序。该应用程序编译并运行良好,没有任何错误。
然后,我将完全相同的源代码(字面意思是相同的文件)移动到我的另一台运行 windows vista x64 的 PC 上。在编译源代码时,我收到了错误。
在 x86 上我可以简单地开始:
include "win32a.inc"
entry start
在 x64 上编译时,我不得不使用类似于以下内容:
format PE GUI 4.0
include "win32a.inc"
entry start
另一个问题(我主要关心的问题)是在 x86 上我可以使用什么时候:
.if dword [var] = "1234"
;Do something here
.endif
但是在 x64 上编译相同的代码时,我得到“非法指令”,并突出显示以下行:
.if dword [var] = "1234"
在 x64 上执行此操作是否有不同的方法?
另外,我如何编码到两者都兼容的地方?我想,如果我在 x86 上编译,那么结果输出将在 x64 上运行良好?
最后,这是否可能与架构无关?
【问题讨论】:
标签: if-statement x86 64-bit fasm