NASM is portable
If your goal is to write 32bit x86 Assembly, then you could use the Netwide Assembler (NASM). It's freely available online, and has been ported to run on many architectures. I've written a ton of x86 asm from my alpha. Of course, that doesn't let you _run_ the code. I'd get some emulator like QEMU (or Bochs) for that with a DOS image.
MASM sucks, it introduces a lot of stuff in assembly that really shouldn't be there. Data types? The CPU doesn't give a rat's ass if your int is signed or unsigned, it'll run the exact same operations on it either way. So why should you care?
I've used MASM, TASM, and NASM, and NASM was by far the best one for me.