📄 dis88.9
字号:
.CD "dis88 \(en disassembler [IBM]".SX "dis88\fR [\fB\(eno\fR] \fIinfile\fR [\fIoutfile\fR]".FL "\(eno" "List the object code along with the assembly code".EX "dis88 a.out >listing" "Disassemble \fIa.out\fR".EX "dis88 \(eno a.out listing" "Ditto, but with object code".PP\fIDis88\fR disassembles 8088 object code to the assembly language formatused by .MX .It makes full use ofsymbol table information, supports separate instruction and data space, and generates synthetic labels when needed. It does not support 8087 mnemonics, symbolic data segment references, or the ESC mnemonic..PPThe program is invoked by:.HS.Cx "dis88 [\(eno] infile [outfile]".HSThe \(eno flag causes object code to be listed. If no outfile is given, \fIstdout\fR is used..PPThe text segment of an object file is always padded to an even address.In addition, if the file has split I/D space, the text segment will be paddedto a paragraph boundary (i.e., an address divisible by 16). Due to padding, thedisassembler may produce a few spurious, but harmless, instructions at the endof the text segment..PPBecause the information to which initialized data refers cannot generallybe inferred from context, the data segment is treated literally. Byte values(in hexadecimal) are output, and long stretches of null data are represented byappropriate \fI.zerow\fR pseudo-ops. Disassembly of the bss segment, on the otherhand, is quite straightforward, because uninitialized data is all zero by definition. No data is output in the bss segment, but symbolic labels are outputas appropriate..PPThe output of operands in symbolic form is complicated somewhat by theexistence of assembler symbolic constants and segment override opcodes. Thus,the program's symbol lookup routine attempts to apply a certain amount ofintelligence when it is asked to find a symbol. If it cannot match on a symbolof the preferred type, it may output a symbol of some other type, depending onpreassigned (and somewhat arbitrary) rankings within each type. Finally, ifall else fails, it will output a string containing the address sought as a hexconstant. For user convenience, the targets of branches are also output, incomments, as hexadecimal constants..SS "Error Messages".PPVarious error messages may be generated as a result of problems encounteredduring the disassembly.They are listed below.HS..in +3.20i.ta +2.75i +0.2i.ti -2.95iCannot access input file \(en Input file cannot be opened or read.ti -2.95iCannot open output file \(en Output file cannot be created.ti -2.95iInput file not in object format \(en Bad magic number.ti -2.95iNot an 8086/8088 object file \(en CPU ID of the file header is incorrect.ti -2.95iReloc table overflow \(en Relocation table exceeds 1500 entries.ti -2.95iSymbol table overflow \(en Symbol table exceeds 1500 entries.ti -2.95iLseek error \(en Input file corrupted (should never happen).ti -2.95iWarning: no symbols \(en Symbol table is missing (use ast).ti -2.95iCannot reopen input file \(en Input file was removed during execution.in -3.20i.SS "Author".PP\fIDis88\fR was written andcopyrighted by G. M. Harding and is included here by permission. It may befreely redistributed provided that complete source code, with all copyrightnotices, accompanies any redistribution. This provision also applies to anymodifications you may make. You are urged to comment such changes, giving,as a minimum, your name and complete address.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -