8086 Disassembler PATCHED Download Programs
Please note that this code was written when i was trying to learn C++, so it is not a very well commented code, but dont hesitate to download and have a look - i have added quite a few comments at very important places and that should help you. If you already have a good knowledge of decompilation and the 8086 assembly language, then it would be a breeze for you!
8086 disassembler download programs
This gets to the other sense of your query: "I want to make a disassembler". The source for ndisasm is available, and it handles many of the descendants of 8086, not just 8086, itself (which seriously clutters it, if all you want is an 8086 or even 80386 disassembler), but it is not self-contained and has a heavy dependency on the rest of the distribution.
And then you've just disassembled a disassembler that also happens to do CPU emulation, like Fake86 does - but only for the 8086. You'll have to make the absolute addresses relative (using the original relocation table as a guide), to make is re-assemblable. Once you do that, you can work on the source. The opcode table is in clear view (if you display it as text) - both when seen in the packed and unpacked versions of debug.exe.
I might port the DAS disassembler to the x86, since items (a)-(f) are already incorporated into DAS's design. I've only ever ported it to the 8051, 6800, 6809 and 8080/8085 (and Z80) up to now; but the transition from 8085 to 8086 is relatively small. To that end, I might hack something out of Fake86. That's mostly abandonware, now, since the author replaced it by XTulator, as Fake86 was written when the programmer was relatively new to C. You might also be able to hack something directly out of DosDebug's opcode tables (their "instr.*" files).
Emu8086 is an 8086 microprocessor emulator and disassembler.It permit to assemble, emulate and debug 8086 programs (16bit/DOS).Although this program was made for Windows, it works fine on GNU/Linux (with the help of Wine).
Free software, uploaded by the author. Index A B C D E F G H I J [K] L M N O P Q R S T U V W X Y Z KVL29EOSSummary:Hires graphics library for Eclipse (adv. GUI)License:FreewareAuthor:Grzegorz KowalEmail:email@example.comDownload:kvl29eos.zip(Apr 7 2000, 115.9K)Description:Kojak's VESA Library 2.9 is a set of functions useful for the simplecreation of 32-bit GUI DOS programs under the Eclipse Operating System(DOS Extender). It supports VESA 1.x or 2.x BIOS in 640x480x256,800x600x256 and 1024x768x256 modes. The library implements macros andfunctions providing support for block, line and pixel operations,pallette manipulation, GIF, Color-IX bitmaps, text, filtered input,advanced graphic user interface, and more. Index A B C D E F G H I J K [L] M N O P Q R S T U V W X Y Z LOADEMSSummary:ASM example of load & execute from EMS memoryDownload:loadems.zip(Feb 25 1990, 3.1K) LW 8086/80186Summary:Pop-up help for instruction setDownload:lw86.zip(Nov 20 1986, 14.3K) Index A B C D E F G H I J K L [M] N O P Q R S T U V W X Y Z M68DISVersion:2.0Summary:Intelligent MC6800/6802 disassembler,License:FreewareDownload:m68dis20.zip(Nov 26 2000, 11K)Description:The M68DIS program is a disassembler for MC6800/6802. It's operationis controlled by a command file, which tells it what binary code imagefile(s) to load, the addresses for code entry points such as RST, NMI,etc. (optional), and the addresses for any code or subroutines whichmay not be explicitly called within the MC6800/6802 code. The programthen processes the code, tracing execution paths and identifying jumplocations, subroutines and data tables. The program output is normallyin "list" format, with an address column at the start of each line,however, this address column is omitted if the specified output filename ends in ".ASM". MAC 8080Summary:TASM macros to assemble codeDownload:mac8080.zip(Nov 24 1991, 9.9K) MASM_CN 6Summary:Converts v6.x .ASM to v5.x formatLicense:SharewareEmail:firstname.lastname@example.orgDownload:masm_cn3.zip(May 31 1997, 8K)Description:MASM converter converts the MASM v6.x Assembly Source Code (.ASM) to the format used by the older MASM v5.x assemblers. This allows you to assemble, after the conversion, the new source code with an older assembler (the author uses MASM v5.1). The new source code comes from such sources as a disk when you purchase an assembly related book, software distributors, etc. MASM32 V9.0Summary:32 bit MASM assembler from MicrosoftDownload: m32v9r.zip(3,455K) MASM ReferenceSummary:Microsoft MASM assembler reference manualDownload: MASMReference.pdf(646K) MD 8086Summary:Masterful Disassembler for Intel programsDownload:md86.zip(Jun 24 1990, 153.4K) MMXTASMSummary:Turbo Assembler macros for MMX programmingLicense:FreewareAuthor:Normand LeclercEmail:email@example.comDownload:mmxtasm0.zip(Mar 14 1998, 6.8K)Description:Now TASM users can code for MMx processors with TASM. Based on Intel's iammx.inc file, I managed to create a new set of macros using Ideal programming mode. I have also included an example on how to use them and how they are transparent. The example is MSDOS based and I did not include a pre-compiled version, instead, I included a makefile for easy creation. The example uses case-sensitivity compilation but the macros will work well without it. This is still a beta release. I expect to have some bugs even if I tested every instructions. MODES 013hSummary:Switch to mode/03h without BIOS - ASM srcDownload:modes.zip(Jan 27 1997, 6.1K) MODEXSummary:High performance ASM video routinesDownload:modex105.zip(May 22 1996, 258.7K) MOUSEAPI Docs on the interrupt functions used to control the mouse in DOS. Download
This is a minor modification of Cyborg's PMODE for NASM. The onlydifference is that you can now separatly compile PMODE.ASM and othermodules and then link them together using TLINK or some other linker.Note that the CODEEND macro at the end of the main module of a user'sprogram isn't needed any longer. Also included with this release arelibs from the original PMODE 2.4 by Tran. PMTUTSummary:Protected mode FAQ and tutorialDownload:pmtut002.zip(Mar 21 1996, 32.3K) PRENVSummary:Read a program's parent's environment w/ASMDownload:prenv.zip(Sep 23 1988, 2.4K) PRIAC 40:00F0Summary:Displays IAC area at w/ASMDownload:priac1.zip(Sep 27 1988, 5.3K) PRIMERSummary:Whitman's ASM language primer for beginnersDownload:primer2.zip(Aug 14 1985, 14.7K) PROBESummary:Analyze program performanceDownload:probe.zip(Apr 28 1986, 34K) Index A B C D E F G H I J K L M N O P [Q] R S T U V W X Y Z Index A B C D E F G H I J K L M N O P Q [R] S T U V W X Y Z RAW32Summary:DOS extender source & examples. FreeLicense:FreewareAuthor:Daniel HorchnerEmail:firstname.lastname@example.orgDownload:raw32r3.zip(Jun 28 1999, 172K)Description:RAW32 is a simple DOS extender that I have made to understand theprotected mode mechanism of the Intel 80386 processor. It works underthe following memory configurations: raw, XMS, VCPI and DPMI. I'vereleased the source code, because it is hard to find some useful infoabout protected mode programming for beginners. RAW32 is very stableand has some unique features, see RAW32.TXT for more details. Includedare several examples that show different aspects of programmingprotected mode programs. READOBJSummary:Dump Microsoft .OBJ & .LIB files, w/'C' sourceDownload:readobj.zip(Mar 11 1989, 15.8K) RESSummary:Disassembler by Ward ChristensenDownload:res86.zip(Jan 2 1986, 31.8K) RHStdLib Randy Hyde's Standard Library for 8086 Assembly Language Programmers. Includes routines for string handling, video I/O and more. Public Domain. Download
The DisassemblerHackman Disassembler 9.0 is an ultra fast multi processor disassembler, capable of disassembling code at a rate of 250 Kb/sec (PIII/900 MHz). The opcodes cover all x86 Intel and AMD architecture, starting at 8086 and ending at 3DNow! and Pentium 4 specific instructions. With Hackman Disassembler you have a multi-disassembling suite integrated into one program with a handy interface. Opcode sets are available for Intel 8086/80286/80386/80486 (*), Intel Pentium/Pro/MMX/II/III/P4 (*), AMD 3DNow! (*), 1802 (*), 6502/6510/8500/8502, 65816, 65C02/65SC02, 65CE02, Motorola 6800/6802/6808 (*), Motorola 6801/6803 (*), Motorola 6805/146805 (*), Hitachi 6809/6309, 8085, Zilog Z80, Gameboy CPU, Java Bytecode. Asterisk (*) denotes detailed online help availability.