Skip to content

An MS-DOS COM executables disassembler for Linux. Part of a university assignment in Assembly languages.

License

Notifications You must be signed in to change notification settings

rakuco/decompify

Repository files navigation

decompify
  An MS-DOS COM files disassembler for Linux.
=============================================

Introduction
------------
  This project comes from an Assembly Languages and Computer Organization class
  assignment from State University of Campinas, Brazil.

  The code is licensed under the General Public License (GPL) and should be used
  by other students who want to learn Assembly.

  It's written for NASM and should compile under any Linux 2.6.x kernel.

Acknowledgements
----------------
  The design of the program was heavily influencied by Marius Gedminas' Disasm,
  which was also a school project and had the same purpose, but it generated
  a disassembly suitable for TASM.
  For more information, please check Marius' site: http://gedmin.as/disasm

  Christian Fowelin's libASM was of great help as well. Even though I only
  used one of his functions (WriteHex) directly, the simple looking at his
  code is of great value.
  libASM: http://www.fowelin.de/christian/computer/libASM

Instruction set
---------------
  decompify follows the university assignment and only implements the Intel 186
  instruction set (not even 386 instructions are implemented).

  The instructions which are implemented can be found in assignment/proj02.pdf.

Multiple mnemonics
------------------
  Some instructions have more than one possible mnemonic which corresponds to
  the same opcode, such as WAIT/FWAIT and XLAT/XLATB.
  In these cases, the mnemonic output by ndisasm was chosen.

Invalid bytes
-------------
  In case decompify finds an erroneus byte in the code, it just writes a

    db BYTE

  in the code.

Jumps and labels
----------------
  Currently, jumps and branches do not generate labels. The code generated inserts
  the literal address of the jump after the mnemonic.

About

An MS-DOS COM executables disassembler for Linux. Part of a university assignment in Assembly languages.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages