zmac is a Z80 macro cross-assembler. It has all the features you'd expect.
It assembles the specified input file and produces raw binary output.
(It can optionally produce CP/M-style Intel hex format.) By default it
also produces a nicely-formatted listing of the m/c alongside the source.
As well as normal Z80 programs, zmac lets you write 8080 programs in Z80