How can I detect at compile time from an ASM source file if the target architecture is I386 or AMD64?
I am using masm(ml.exe)/masm64(ml64.exe) to assemble file32.asm and file64.asm. It would be nice to create a single file, file.asm, which should include either file32.asm, or file64.asm, depending on the architecture. Ideally, I would like to be able to write something like:
IFDEF amd64 include file64.asm ELSE include file32.asm ENDIF
Also, if needed, I can run ml.exe and ml64.exe with different command line options.
Thanks!
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.