JWasm
Japheth's assembler, JWasm
JWasm is a free MASM-compatible assembler with these features:
native support for output formats Intel OMF, MS Coff (32/64-bit), Elf (32/64-bit), Binary, Windows PE (32/64-bit) and DOS MZ.
precompiled JWasm binaries are available for DOS, Windows and Linux. For OS/2 and FreeBSD, makefiles are supplied.
Instructions up to AVX are supported.
JWasm is written in C. The source is portable and has successfully been tested with Open Watcom, MS VC, GCC and more.
As far as programming for MS Windows...