2.2.7. Other Differences
------------------------
For historical reasons, NASM uses the keyword `TWORD' where MASM and
compatible assemblers use `TBYTE'.
NASM does not declare uninitialised storage in the same way as MASM:
where a MASM programmer might use `stack db 64 dup (?)', NASM requires
`stack resb 64', intended to be read as `reserve 64 bytes'. For a
limited amount of compatibility, since NASM treats `?' as a valid
character in symbol names, you can code `? equ 0' and then writing `dw
?' will at least do something vaguely useful. `DUP' is still not a
supported syntax, however.
In addition to all of this, macros and directives work completely
differently to MASM. See Note:Chapter 4 and Note:Chapter 5 for
further details.