Detecting architecture at compile time from MASM/MASM64

不想你离开。 提交于 2019-12-05 06:14:17

If I understand you correctly, you're looking for some sort of built-in define that has a different value among 32 and 64 bit MASM versions. I once looked for something like that, but didn't find anything suitable.

However, it's easy enough to just define your own, e.g. AMD64 equ 1 at the start of your source file to select your desired code path, or at the ML/ML64 command-line, like /DAMD64. And then use IFDEF/IFNDEF, as you suggest.

vengy
IFDEF RAX

  ECHO "WIN64"

ELSE

  ECHO "WIN32"

ENDIF

The x86 and x64 instruction sets (not even mentioning stack usage and restrictions) are soooooo different that I wonder if that would make sense, anyway... IOW, writing efficient architecture-independent x86 / x64 code looks close to impossible to me. This is assembly, not some portable HLL.

That's also most likely the reason why there are two specific assemblers, ml.exe and ml64.exe, rather than a single ml.exe that would handle it all with the help of some extra directives.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!