ACME is a free cross assembler released under the GNU GPL.
It can produce code for the following processors: 6502, 6510 (including illegal opcodes), 65c02 and 65816.
ACME supports the standard assembler stuff like global/local/anonymous labels, offset assembly, conditional assembly and looping assembly. It can include other source files as well as binaries while assembling.
Calculations can be done in integer or float mode.
Oh, and it is fast.
Assembler with elaborate features. The syntax for pseudo commands is not very common but can be converted in a straightforward way. The support is great and alive. 65xx/x family support is great (even undocumented opcodes, 16-bit 65816, ...). Just the macro feature has (so far) a uncommon parameter passing system which may cause trouble converting other source (based on heavily macro usage) ;)
Easy for use.