bot*_*ius 6 assembly x86-64 masm cpu-architecture masm32
如果目标体系结构是I386或AMD64,如何在编译时从ASM源文件中检测到?
我使用masm(ml.exe)/ masm64(ml64.exe)来组装file32.asm和file64.asm.创建单个文件file.asm会很好,它应该包含file32.asm或file64.asm,具体取决于体系结构.理想情况下,我希望能够写出如下内容:
IFDEF amd64 include file64.asm ELSE include file32.asm ENDIF
此外,如果需要,我可以使用不同的命令行选项运行ml.exe和ml64.exe.
谢谢!
ven*_*ngy 12
IFDEF RAX
ECHO "WIN64"
ELSE
ECHO "WIN32"
ENDIF
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,那么您正在寻找某种内置定义,它在32位和64位MASM版本中具有不同的值.我曾经寻找类似的东西,但没有找到合适的东西.
但是,只需定义自己的内容就足够了,例如AMD64 equ 1在源文件的开头选择所需的代码路径,或者在ML/ML64命令行中定义/DAMD64.然后按照你的建议使用IFDEF/ IFNDEF.