If statement FASM-x64与x86

If statement FASM-x64与x86,if-statement,x86,64-bit,fasm,If Statement,X86,64 Bit,Fasm,在使用WindowsVista x86时,我用FASM制作了一个简单的应用程序。应用程序编译后运行良好,没有任何错误 然后,我将相同的源代码(字面上是相同的文件)移动到另一台运行WindowsVista x64的电脑上。编译源代码时,我收到了错误 在x86上,我可以从以下几点开始: include "win32a.inc" entry start 在x64上编译时,我必须使用类似以下内容: format PE GUI 4.0 include "win32a.inc" entry start

在使用WindowsVista x86时,我用FASM制作了一个简单的应用程序。应用程序编译后运行良好,没有任何错误

然后,我将相同的源代码(字面上是相同的文件)移动到另一台运行WindowsVista x64的电脑上。编译源代码时,我收到了错误

在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上正常运行


最后,这可能与体系结构无关吗?

我找到了一些旧的MASM代码,用于最新版本的FASM。我必须添加此项才能使用
。如果
宏:

include 'MACRO/IF.INC'
以及:

include "win32a.inc"
让它编译。注意:我得到一个非法指令错误,但没有包含
宏/if.inc

旧32位系统上的
win32a.inc
版本可能包含
。if