DASMa is a free, open source and versatile macro assembler with support for several 8-bit microprocessors including MOS 6502 and 6507, Hitachi HD6303 (extended Motorola 6801), Motorola 6803, 68705 an 68HC11, and Fairchild F8.
All versions of dasm are written in C and include the full source code, recent versions (since about 2003) also include selected target-machine runtimes (currently for the Atari 2600 VCS and the Fairchild Channel F VES).