Microsoft Store
 

Disassembler


 

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 (called disassembly). By comparison, a decompiler translates machine language into a high level language.

Related Topics:
Computer program - Machine language - Assembly language - Assembler - Disassembly - Decompiler - High level language

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

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

Related Topics:
Debugger - Objdump - GNU Binutils

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Generally, assembly language source code features the use of symbolic constants, and programmer "comments" - annotations which are ignored by the assembler but explain to another programmer what the program does and how it does it. These symbolic constants and comments are usually, but not always, removed from programs by the assembler. The loss of this information makes interpreting the dissassembled output more difficult than the original annotated source code. Indeed, a completely automated disassembly tool is not possible, because the disassembly process reduces to a famous Computer Science problem known as the "Halting Problem" (which cannot be solved). Therefore, interactive disassemblers will always be better (able to successfully disassemble more programs) than automated disassemblers because the human being can apply intelligence to the disassembly process and help the disassembler produce a better result.

Related Topics:
Source code - Symbolic constant - Halting Problem

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Disassemblers are a standard tool in the reverse engineering of computer software.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~