JWasm
Japheth's assembler, JWasm
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 is concerned, JWasm can be used with both WinInc (32/64-bit) and Masm32 (32-bit). Since v2.01, it will also work with Sven B. Schreiber's ancient WALK32.
C header files can be converted to include files for JWasm with h2incX.