Citizendia
Your Ad Here

A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. Computer programs (also software programs, or just programs) are instructions for a Computer. Machine code or machine language is a system of instructions and data executed directly by a Computer 's Central processing unit. See the terminology section below for information regarding inconsistent use of the terms assembly and assembler See the terminology section below for information regarding inconsistent use of the terms assembly and assembler A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language. A decompiler is the name given to a Computer program that performs the reverse operation to that of a Compiler. In computing a high-level programming language is a Programming language with strong abstraction from the details of the computer Disassembly, the output of a disassembler, is often formatted for human-readability rather than suitability for input to an assembler, making it principally a reverse-engineering tool. Reverse engineering (RE is the process of discovering the technological principles of a device object or system through analysis of its structure function and operation

Assembly language source code generally permits the use of symbolic constants and programmer comments. In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable A variable (ˈvɛərɪəbl is an Attribute of a physical or an abstract System which may change its Value while it is under Observation. In Computer programming, a comment is a Programming language construct used to embed Information in the Source code of a computer program These are usually removed from the assembled machine code by the assembler. Machine code or machine language is a system of instructions and data executed directly by a Computer 's Central processing unit. If so, a disassembler operating on the machine code would produce disassembly lacking these constants and comments; the disassembled output becomes more difficult for a human to interpret than the original annotated source code. Some disassemblers can infer useful names and comments, and many can make use of the symbolic debugging information present in object files such as ELF. Debug symbols is the information on what Assembler or high-level programming language constructions generated specific piece of Machine code in the given In Computing, the Executable and Linking Format ( ELF, formerly called Extensible Linking Format) is a common standard File format for Executables Some disassemblers, such as the Interactive Disassembler, actually allow the human user to make up mnemonic symbols for values or regions of code in an interactive session: human insight applied to the disassembly process often parallels human creativity in the code writing process. The Interactive Disassembler, more commonly known as simply IDA, is a commercial Disassembler widely used for Reverse engineering.

Disassembly is not an exact science: On CISC platforms with variable-width instructions, or in the presence of self-modifying code, it is possible for a single program to have two or more reasonable disassemblies. In Computer science, self-modifying code is code that alters its own instructions, intentionally or otherwise while it is executing. Determining which instructions would actually be encountered during a run of the program reduces to the proven-unsolvable halting problem. In Computability theory and Computational complexity theory, a reduction is a transformation of one problem into another problem In computability theory, the halting problem is a Decision problem which can be stated as follows given a description of a program and a finite input

Contents

Examples of disassemblers

See also

References

External links

The Open Directory Project ( ODP) also known as dmoz (from directory

Dictionary

disassembler

-noun

  1. (computing) A computer program that examines another computer program and attempts to generate assembly language source code that would, in theory, reproduce the target program.
© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
Dapyx Software network: MP3 Explorer | Ebook Manager | Zenithic