home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / disasm / aabstrct.txt < prev    next >
Internet Message Format  |  1994-03-07  |  5KB

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