如果目标体系结构是I386或AMD64,如何在编译时从ASM源文件中检测?

我正在使用masm(ml.exe)/masm64(ml64.exe)来组装file32.asm和file64.asm。创建单个文件file.asm会很好,根据架构的不同,该文件应包含file32.asm或file64.asm。理想情况下,我希望能够编写如下内容:

IFDEF amd64
包括file64.asm
别的
包括file32.asm
万一

另外,如果需要,我可以使用不同的命令行选项运行ml.exe和ml64.exe。

谢谢!

最佳答案

如果我对您的理解正确,那么您正在寻找某种内置定义,这些定义在32位和64位MASM版本中具有不同的值。我曾经寻找过类似的东西,但没有找到合适的东西。

但是,只需定义自己的定义就很容易了,例如在源文件的开头选择AMD64 equ 1来选择所需的代码路径,或者在ML/ML64命令行上选择/DAMD64,以选择所需的代码路径。然后按照您的建议使用IFDEF/IFNDEF

关于assembly - 在MASM/MASM64编译时检测体系结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2595550/

10-11 18:31