A search for a cross-assembler that would run on Linux and support the Intel 8080 identified the AS macro assembler. This is a full-featured, free (GPL licensed) cross-assembler that runs on Linux and other desktop operating systems. It actually supports about 75 different microprocessors -- quite an amazing accomplishment!
I built it from source on Linux without any problems and was soon assembling 8080 assembly language code. The documentation that comes with it is very extensive and complete and the assembler listings are easy to read (some representative listing code is shown below).
727/ 39F : ; GetAddress
728/ 39F : ; Gets a four character hex number from the keyboard.
729/ 39F : ; Ignores invalid characters.
730/ 39F : ; Returns binary word in HL.
731/ 39F : ; Registers affected: A,B,H,L
732/ 39F :
733/ 39F : GetAddress:
734/ 39F : CD 90 03 call GetByte ; Get MSB
735/ 3A2 : D8 rc ; Exit if
736/ 3A3 : 67 mov h,a ; Save MSB in H
737/ 3A4 : CD 90 03 call GetByte ; Get LSB
738/ 3A7 : D8 rc ; Exit if
739/ 3A8 : 6F mov l,a ; Save LSB in L
740/ 3A9 : C9 ret
It can produce Intel Hex format files which can be transferred to CP/M, converted to .COM files using the CP/M LOAD program, and then executed.
I am using it to generate a binary file which can be copied to an SD card and then directly loaded and executed by the firmware on the Briel Altair 8800.
It is very fast to assemble programs under Linux, and seems to have all the features and more than I could want. If you are looking for a good cross-assembler for the 8080 or just about any processor, it may be just what you need.