NASM can handle x86 from 8bit to 64 bit, don't worry about it. NASM is a good all around assembler.
They both use Intel style assembly code, which is nicer in my opinion than AT&T style assembly code, you should do fine.
They are assemblers, as long as you understand the interrupts you call, they will accept your code, turn it into binary, and send it off merrily to be executed.
Oh yeah, to generate a dos executable place ORG 100h above the entry point you want, and that's why dos was good for assembly programmers.
Edit: This was only one of the reasons, the others were that dos was heavily interrupt based, so knowing where the arguments go and what they are allowed for relatively easy system calls.
PE format is what you want to look for, I think there's a bit more manual footwork to do in NASM to make it work properly on windows...