It's an assembler.
It's a tool that reads assembly-language source code (for an impressively large array of actual target CPUs), in various syntaxes.
It converts the text into the corresponding machine code bytes, while optionally applying various machine-specific optimizations (like making branches short when possible and so on).
It then emits the resulting bits in any of a bunch of handy executable file formats.
Very impressive, and just what I was looking for the other week to build some old Amiga code of mine. :)