Documentation
pdp11-das
The disassembler — the inverse of as, covering every era the assembler covers: First Edition (1971) through V7 and 1/2.8/2.9/2.10/2.11BSD objects, executables, archives, and kernels.
The disassembler — the inverse of as, covering every era the assembler
covers: First Edition (1971) through V7 and 1/2.8/2.9/2.10/2.11BSD
objects, executables, archives, and kernels.
pdp11-das [-a] [-p] [-s] [-6] [-2] [-y]
[--sys=...] [--isa=...] [--std=...] file
-aproduces reassemblable source. Not a listing: a.sfile that ourasassembles back to the original bytes — symbol-table index-order walking, numbered-local synthesis,.comm/.globlinterleave pinning, nearest-label±offset anchors. Corpus-proven at 1130/1130 wide-corpus objects and 1665/1665 2.11 objects.- Stripped binaries too: walks code from csv prologues and computed-jump case bodies when there is no symbol table.
- String-table (2.11) and fixed-name symbol formats are both native.
Documentation
- Design — the decode tables, the symbol/nearest-label anchoring, and the stripped-binary walk.
- User guide — invocation and how to read a listing.
- docs/fieldguide.md — the field guide to the reassembly engine and its edge cases.
- docs/porting.md — (historical) the porting guide of the original small das; the engine has grown well beyond it.
Build and test
make # builds ../../bin/pdp11-das
make check # covered by tests/cc/das.sh at the repo root and the
# das-* oracle sweeps