source: trunk/minix/man/man9/dis88.9@ 9

Last change on this file since 9 was 9, checked in by Mattia Monga, 13 years ago

Minix 3.1.2a

File size: 3.4 KB
Line 
1.so mnx.mac
2.TH DIS88 9
3.CD "dis88 \(en disassembler [IBM]"
4.SX "dis88\fR [\fB\(eno\fR] \fIinfile\fR [\fIoutfile\fR]"
5.FL "\(eno" "List the object code along with the assembly code"
6.EX "dis88 a.out >listing" "Disassemble \fIa.out\fR"
7.EX "dis88 \(eno a.out listing" "Ditto, but with object code"
8.PP
9\fIDis88\fR disassembles 8088 object code to the assembly language format
10used by
11.MX .
12It makes full use of
13symbol table information, supports separate
14instruction and data space, and generates synthetic labels when needed.
15It does not support 8087 mnemonics, symbolic data segment references, or
16the ESC mnemonic.
17.PP
18The program is invoked by:
19.HS
20.Cx "dis88 [\(eno] infile [outfile]"
21.HS
22The \(eno flag causes object code to be listed.
23If no outfile is given, \fIstdout\fR is used.
24.PP
25The text segment of an object file is always padded to an even address.
26In addition, if the file has split I/D space, the text segment will be padded
27to a paragraph boundary (i.e., an address divisible by 16). Due to padding, the
28disassembler may produce a few spurious, but harmless, instructions at the end
29of the text segment.
30.PP
31Because the information to which initialized data refers cannot generally
32be inferred from context, the data segment is treated literally. Byte values
33(in hexadecimal) are output, and long stretches of null data are represented by
34appropriate \fI.zerow\fR pseudo-ops.
35Disassembly of the bss segment, on the other
36hand, is quite straightforward, because uninitialized data is all zero by
37definition.
38No data is output in the bss segment, but symbolic labels are output
39as appropriate.
40.PP
41The output of operands in symbolic form is complicated somewhat by the
42existence of assembler symbolic constants and segment override opcodes. Thus,
43the program's symbol lookup routine attempts to apply a certain amount of
44intelligence when it is asked to find a symbol. If it cannot match on a symbol
45of the preferred type, it may output a symbol of some other type, depending on
46preassigned (and somewhat arbitrary) rankings within each type. Finally, if
47all else fails, it will output a string containing the address sought as a hex
48constant. For user convenience, the targets of branches are also output, in
49comments, as hexadecimal constants.
50.SS "Error Messages"
51.PP
52Various error messages may be generated as a result of problems encountered
53during the disassembly.
54They are listed below
55.HS.
56.in +3.20i
57.ta +2.75i +0.2i
58.ti -2.95i
59Cannot access input file \(en Input file cannot be opened or read
60.ti -2.95i
61Cannot open output file \(en Output file cannot be created
62.ti -2.95i
63Input file not in object format \(en Bad magic number
64.ti -2.95i
65Not an 8086/8088 object file \(en CPU ID of the file header is incorrect
66.ti -2.95i
67Reloc table overflow \(en Relocation table exceeds 1500 entries
68.ti -2.95i
69Symbol table overflow \(en Symbol table exceeds 1500 entries
70.ti -2.95i
71Lseek error \(en Input file corrupted (should never happen)
72.ti -2.95i
73Warning: no symbols \(en Symbol table is missing (use ast)
74.ti -2.95i
75Cannot reopen input file \(en Input file was removed during execution
76.in -3.20i
77.SS "Author"
78.PP
79\fIDis88\fR was written and
80copyrighted by G. M. Harding and is included here by permission. It may be
81freely redistributed provided that complete source code, with all copyright
82notices, accompanies any redistribution. This provision also applies to any
83modifications you may make. You are urged to comment such changes, giving,
84as a minimum, your name and complete address.
Note: See TracBrowser for help on using the repository browser.