A disassembler is a computer program which translates machine language to assembly language. It therefore performs the inverse operation to an assembler. However, the output of a disassembler is often designed for human-readability rather than suitability for input to an assembler.

Most debuggers include a disassembler, as does the objdump program of the GNU Binutils.