home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume15 / dis88 / part01 / README < prev   
Encoding:
Text File  |  1988-05-23  |  4.8 KB  |  92 lines

  1.                                      dis88
  2.                                   Beta Release
  3.                                     87/09/01
  4.                                       ---
  5.                                  G. M. HARDING
  6.                                     POB 4142
  7.                            Santa Clara CA  95054-0142
  8.  
  9.  
  10.              "Dis88" is a symbolic disassembler for the Intel 8088 CPU,
  11.         designed to run under the PC/IX  operating  system on an IBM XT
  12.         or fully-compatible clone.  Its output is in the format of, and
  13.         is completely compatible with, the PC/IX assembler,  "as".  The
  14.         program is copyrighted by its author, but may be copied and re-
  15.         distributed freely provided that complete source code, with all
  16.         copyright notices, accompanies any distribution. This provision
  17.         also applies to any  modifications you may make.  You are urged
  18.         to comment such changes,  giving,  as a miminum,  your name and
  19.         complete address.
  20.  
  21.              This release of the program is a beta release, which means
  22.         that it has been  extensively,  but not  exhaustively,  tested.
  23.         User comments, recommendations, and bug fixes are welcome.  The
  24.         principal features of the current release are:
  25.  
  26.              (a)  The ability to  disassemble  any file in PC/IX object
  27.         format, making full use of symbol and relocation information if
  28.         it is present,  regardless of whether the file is executable or
  29.         linkable,  and regardless of whether it has continuous or split
  30.         I/D space;
  31.  
  32.              (b)  Automatic generation of synthetic labels when no sym-
  33.         bol table is available; and
  34.  
  35.              (c)  Optional  output of address and object-code  informa-
  36.         tion as assembler comment text.
  37.  
  38.              Limitations of the current release are:
  39.  
  40.              (a)  Numeric co-processor  (i.e., 8087)  mnemonics are not
  41.         supported.  Instructions  for the co-processor are disassembled
  42.         as CPU escape  sequences,  or as  interrupts,  depending on how
  43.         they were assembled in the first place. This limitation will be
  44.         addressed in a future release.
  45.  
  46.              (b)  Symbolic  references  within the object  file's  data
  47.         segment are not supported. Thus, for example, if a data segment
  48.         location is initialized to point to a text segment address,  no
  49.         reference to a text segment symbol will be detected. This limi-
  50.         tation is likely to remain in future  releases,  because object
  51.         code does not, in most cases, contain sufficient information to
  52.         allow meaningful interpretation of pure data.  (Note,  however,
  53.         that  symbolic  references  to the data segment from within the
  54.         text segment are always supported.)
  55.  
  56.              As a final caveat,  be aware that the PC/IX assembler does
  57.         not recognize the  "esc"  mnemonic,  even though it refers to a
  58.         completely  valid CPU operation  which is documented in all the
  59.         Intel literature. Thus, the corresponding opcodes (0xd8 through
  60.         0xdf) are disassembled as .byte directives. For reference, how-
  61.         ever,  the syntactically-correct "esc" instruction is output as
  62.         a comment.
  63.  
  64.              To build the disassembler program, transfer all the source
  65.         files,  together with the Makefile,  to a suitable  (preferably
  66.         empty) PC/IX directory. Then, simply type "make".
  67.  
  68.              To use dis88,  place it in a  directory  which  appears in
  69.         your $PATH list.  It may then be invoked by name from  whatever
  70.         directory you happen to be in.  As a minimum,  the program must
  71.         be invoked with one command-line argument:  the name of the ob-
  72.         ject file to be disassembled.  (Dis88 will complain if the file
  73.         specified is not an object file.)  Optionally,  you may specify
  74.         an output file; stdout is the default.  One command-line switch
  75.         is available:  "-o",  which makes the program display addresses
  76.         and object code along with its mnemonic disassembly.
  77.  
  78.              The "-o" option is useful primarily for verifying the cor-
  79.         rectness of the program's output. In particular, it may be used
  80.         to check the accuracy of local  relative  jump  opcodes.  These
  81.         jumps often  target  local  labels,  which are lost at assembly
  82.         time;  thus,  the disassembly may contain cryptic  instructions
  83.         like "jnz .+39".  As a user convenience,  all relative jump and
  84.         call  opcodes are output with a comment  which  identifies  the
  85.         physical target address.
  86.  
  87.              By convention, the release level of the program as a whole
  88.         is the SID of the file disrel.c, and this SID string appears in
  89.         each disassembly.  Release 2.1 of the program is the first beta
  90.         release to be distributed on Usenet.
  91.  
  92.