What are the syntax differences between the NASM and MASM assemblers?
Section 2.2 of the NASM documentation is titled Quick Start for MASM Users which lists the important differences between NASM and MASM.
NASM version 2.15 added some MASM compatibility, including a %use masm
macro package. See section 6.5 masm
: MASM compatibility. Even without the macro package, ?
and DUP
work in data directives like db
, and displacement[base+index]
is allowed instead of the usual [rdi+4]
syntax which NASM used to require.
Also related, How to know if an assembly code has particular syntax (emu8086, NASM, TASM, ...)? discusses some of the syntax differences.