What are the syntax differences between the NASM and MASM assemblers?
45
votes
2 Answers
48
votes
Section 2.2 of the NASM documentation is titled Quick Start for MASM Users which lists the important differences between NASM and MASM.
-3
votes
What an interesting question. The difference between them is, they are not compatible! But then again, nasm assemblers are not compatible amongst themselves, it seems. Learned it the hard way, while compiling libvpx. I think this single example says it all:
ml64.exe (MSVC 2019) -> throws
nasm for windows -> compiles some *.asm files, throws on some
invalid combination of opcode and operands
Huh?
yasm for windows -> works
llvm assembler (debian) -> throws:
/usr/lib/llvm-13/bin/llvm-as
https://packages.debian.org/experimental/llvm-13
yasm (debian) -> works
nasm (debian) -> works
GNU assembler -> ???
https://manpages.debian.org/experimental/binutils-common/as.1.en.html