home *** CD-ROM | disk | FTP | other *** search
- Date: Thu, 21 Jan 93 20:37:13 PST
- From: "Jerzy Tarasiuk" <JT@zfja-gate.fuw.edu.pl>
- Message-Id: <1225.JT@zfja-gate.fuw.edu.pl>
- To: Keith Petersen <w8sdz@WSMR-SIMTEL20.ARMY.MIL>
- Subject: Disassemblers on SIMTEL20
-
- I tried to use several disassemblers (most of them taken from SIMTEL20
- directory PD1:<MSDOS.DISASM>) to produce .ASM file from ROM image and
- compared them to check what is most useful. Here is my notebook (I
- send it hoping the info can be useful for someone who want to get
- disaasembler for 8088 and need some help to select it; can you put
- it in <MSDOS.DISASM> to make it accessible for all ?):
-
- SOURCER (made by V COMMUNICATIONS)
- Commercial product. Some people assume it is good disassembler.
- However, the program is sophist. If ancient Greece sophists proved
- black is white or white is black. This program even if told where is
- code and where is data will interpret machine code as data (words,
- bytes or strings), and will disassembly what is data (e.g. strings).
- Don't use it: although program looks beatifully and produces a lot
- of information, most of it is unusable because of program sophism!
-
- ID12 (Intelligent Disassembler 1.2; source, GNU copyleft)
- Seems to be most dumby disassembler I saw. And it has some serious
- bugs: some instructions are incorrectly interpreted, seems it doesn't
- know what are lengths of some instructions like CMP (it incorrectly
- disassembled CMP and next found a conditional jump taking next opcode
- as displacement or so, result was jump pointing to data and disassem-
- bling the data) and seems it doesn't recognize 186/286 opcodes.
- It attempts to find locations which can be reach and unassemble code
- found there (can specify "entry" and "exit" locations).
- Data (all what wasn't interpreted as code) is shown as strings (if
- consist of printable characters) or decimal bytes (making enjoing
- game to quess what address can be formed from them, e.g. DB 'x',35).
- Also creates symbols for some values used in program (seems when the
- value is used as address) but doesn't define them in program. Of
- course doesn't show addresses of code or data: game would be to easy.
-
- BUBBLE (Bubble Chamber, Beta Release, RH Factor Sooftware)
- Interactive. Don't use for .EXE files: attempts to unassemble header
- as machine code. When I tried it, it assumed several bytes on begin
- are code, all remaining is data. I edited map for it (press F6) and
- showed where is next code. It interpreted all remaining as code.
- Needed to find next data (shown as machine instructions only: new
- enjoying game to guess what character string is shown as these machine
- instructions). On output: constants are shown as hex, without leading
- 0 (e.g. AA55h, not 0AA55h which MASM can recognize). I supposed it
- uses hex notation, but DUP-s are decimal ( DB 77 DUP (00h) ).
- And, as ID12, it loses labels (BTW, it makes labels for code only).
-
- ASMGEN: would be nice if weren't creating a lot of labels which are
- never used (L0001 EQU $-2 L0002 EQU $-1 L0003 EQU $ PUSH AX ...).
-
- DIS86 (Interactive Disassembler 2.12, by Dr. James R. Van Zandt)
- Shareware ($25 appreciated, $125 for network installation, for $50
- can get new version). Seems attempt to unassemble anything using it
- requires a lot of manual work and some work can be done with same
- efficiency using DEBUG (or some better debugger; DIS86 has commands
- slightly better than debug) in conjunction with screen-to-file save
- TSR: I was unable to find any advantage of DIS86 over the combination.
- Surely using DEBUG to dump all hex, then look for what is obviously
- data, unassemble all remaining and use good editor requires less work.
- Don't waste your time to try this product, there are better ones.
-
- RES86 (RESOURCE by Ward Christensen, Larry Etienne, Craig Derouen)
- Old, .ASM source + 16kB .COM file. No documentation. Interactive
- (however looks worse than BUBBLE). Use DEBUG instead!
-
- MD86 (Masterful Disassembler - i8086 version 1.00)
- ShareWare (registration $17.50 to get user's manual and diskette).
- With a lot of trouble I was able to get it working, but it seems
- to be completely unusable due to large number of bugs! A game of
- quessing: what next unexpected behavior it will show due to bug?
- Of course, all work done during hour session can be destroyed by
- one keystroke which, based on documentation, should be correct.
-
- DMPPRG20 (DUMPPROG version 2.01, (c) D.J. Murdoch, 1991, 1992,
- (c) 1992 Jeroen Pluimers, based on PD code by William Peavy)
- Take up to 80486 opcodes! Reads .EXE and .MAP. I was unable to force
- it to read correctly data taken from ROM, even creating .MAP for it.
- Suppose it can work fine for .EXE created by Turbo Pascal or C.
- Can be installed into Borland Pascal IDE (I don't have the animal).
-
- Best: 1. ASMGEN 2. BUBBLE (have bugs but I used it (once only!))
- I didn't try DEB2ASM.PQS: can anyone tell if it is useful ?
-
- Jerzy Tarasiuk, Computer Centre of Physics Department,
- University of Warsaw, Warsaw, Poland.
-