I barely ever used it, but I noticed that MASM 5.1 is included (together with MSC 5.1 and various other Microsoft tools from 1988) in Microsoft's MIT-licensed MS-DOS repo. Trying some hello world level examples there was nothing obviously annoying about it so far.
The macros! Wtf were they doing with the macros! They didn't want to have a normal assembler that kept people writing maintainable assembly code. They just had macro stacked on macros (my memory here is literally 30 years old, I had to write windows 3.1 vxd drivers) and it didn't help, because they had to use the same registers you were using to do their work. An obtrusive non-abstraction that made life painful.
MASM was always horrible.
nasm has been lovely, but I haven't used in 10+ years. https://github.com/netwide-assembler/nasm
Why all this MASM hate?
I barely ever used it, but I noticed that MASM 5.1 is included (together with MSC 5.1 and various other Microsoft tools from 1988) in Microsoft's MIT-licensed MS-DOS repo. Trying some hello world level examples there was nothing obviously annoying about it so far.
https://github.com/microsoft/MS-DOS/tree/main/v4.0/src/TOOLS
The macros! Wtf were they doing with the macros! They didn't want to have a normal assembler that kept people writing maintainable assembly code. They just had macro stacked on macros (my memory here is literally 30 years old, I had to write windows 3.1 vxd drivers) and it didn't help, because they had to use the same registers you were using to do their work. An obtrusive non-abstraction that made life painful.