MASM 中 x64 和 x86 模式的区别

Pav*_*l P 5 64-bit x86 masm

我有可以使用 masm(ml.exe 或 ml64.exe)为 x64 和 x86 组装的 asm 文件。masm 中是否有一些预定义的宏来检测正在为 x64 组装的文件?现在我手动定义了 _WIN64 然后对其进行测试,但必须有更好的方法来检查它。

kor*_*n00 3

您可以尝试测试是否定义了 RAX,如此类似问题的答案之一中所建议的:在编译时从 MASM/MASM64 检测体系结构

我使用这个技巧创建一个变量,该变量将阻止我的 x64 asm 代码在 x32 版本中进行汇编

IFDEF RAX
    END_IF_NOT_X64 equ <>
ELSE
    END_IF_NOT_X64 equ end  ; kill stop the assembler if we're not compiling for x64
ENDIF

END_IF_NOT_X64

; x64 code...
Run Code Online (Sandbox Code Playgroud)