summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1998-05-24 18:43:39 +0200
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:21:21 +0200
commit8b494f241f2abfc0f869ab42c1601ea5027d3477 (patch)
treeb45660ee4ef2c94fa1c8f27018b141ea9bf7266a /README
downloaddev86-8b494f241f2abfc0f869ab42c1601ea5027d3477.tar.gz
Import dis88-pcix
Diffstat (limited to 'README')
-rw-r--r--README91
1 files changed, 91 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..d0c80dc
--- /dev/null
+++ b/README
@@ -0,0 +1,91 @@
+ dis88
+ Beta Release
+ 87/09/01
+ ---
+ G. M. HARDING
+ POB 4142
+ Santa Clara CA 95054-0142
+
+
+ "Dis88" is a symbolic disassembler for the Intel 8088 CPU,
+ designed to run under the PC/IX operating system on an IBM XT
+ or fully-compatible clone. Its output is in the format of, and
+ is completely compatible with, the PC/IX assembler, "as". The
+ program is copyrighted by its author, but may be copied and re-
+ distributed freely provided that complete source code, with all
+ copyright notices, accompanies any distribution. This provision
+ also applies to any modifications you may make. You are urged
+ to comment such changes, giving, as a miminum, your name and
+ complete address.
+
+ This release of the program is a beta release, which means
+ that it has been extensively, but not exhaustively, tested.
+ User comments, recommendations, and bug fixes are welcome. The
+ principal features of the current release are:
+
+ (a) The ability to disassemble any file in PC/IX object
+ format, making full use of symbol and relocation information if
+ it is present, regardless of whether the file is executable or
+ linkable, and regardless of whether it has continuous or split
+ I/D space;
+
+ (b) Automatic generation of synthetic labels when no sym-
+ bol table is available; and
+
+ (c) Optional output of address and object-code informa-
+ tion as assembler comment text.
+
+ Limitations of the current release are:
+
+ (a) Numeric co-processor (i.e., 8087) mnemonics are not
+ supported. Instructions for the co-processor are disassembled
+ as CPU escape sequences, or as interrupts, depending on how
+ they were assembled in the first place. This limitation will be
+ addressed in a future release.
+
+ (b) Symbolic references within the object file's data
+ segment are not supported. Thus, for example, if a data segment
+ location is initialized to point to a text segment address, no
+ reference to a text segment symbol will be detected. This limi-
+ tation is likely to remain in future releases, because object
+ code does not, in most cases, contain sufficient information to
+ allow meaningful interpretation of pure data. (Note, however,
+ that symbolic references to the data segment from within the
+ text segment are always supported.)
+
+ As a final caveat, be aware that the PC/IX assembler does
+ not recognize the "esc" mnemonic, even though it refers to a
+ completely valid CPU operation which is documented in all the
+ Intel literature. Thus, the corresponding opcodes (0xd8 through
+ 0xdf) are disassembled as .byte directives. For reference, how-
+ ever, the syntactically-correct "esc" instruction is output as
+ a comment.
+
+ To build the disassembler program, transfer all the source
+ files, together with the Makefile, to a suitable (preferably
+ empty) PC/IX directory. Then, simply type "make".
+
+ To use dis88, place it in a directory which appears in
+ your $PATH list. It may then be invoked by name from whatever
+ directory you happen to be in. As a minimum, the program must
+ be invoked with one command-line argument: the name of the ob-
+ ject file to be disassembled. (Dis88 will complain if the file
+ specified is not an object file.) Optionally, you may specify
+ an output file; stdout is the default. One command-line switch
+ is available: "-o", which makes the program display addresses
+ and object code along with its mnemonic disassembly.
+
+ The "-o" option is useful primarily for verifying the cor-
+ rectness of the program's output. In particular, it may be used
+ to check the accuracy of local relative jump opcodes. These
+ jumps often target local labels, which are lost at assembly
+ time; thus, the disassembly may contain cryptic instructions
+ like "jnz .+39". As a user convenience, all relative jump and
+ call opcodes are output with a comment which identifies the
+ physical target address.
+
+ By convention, the release level of the program as a whole
+ is the SID of the file disrel.c, and this SID string appears in
+ each disassembly. Release 2.1 of the program is the first beta
+ release to be distributed on Usenet.
+