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 1at the start of your source file to select your desired code path, or at the ML/ML64 command-line, like/DAMD64. And then useIFDEF/IFNDEF, as you suggest.