| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- ndisasm(1)
- ==========
- :doctype: manpage
- :man source: NASM
- :man manual: The Netwide Assembler Project
- NAME
- ----
- ndisasm - the Netwide Disassembler, an 80x86 binary file disassembler
- SYNOPSIS
- --------
- *ndisasm* [ *-o* origin ] [ *-s* sync-point [...]] [ *-a* | *-i* ]
- [ *-b* bits ] [ *-u* ] [ *-e* hdrlen ] [ *-p* vendor ]
- [ *-k* offset,length [...]] infile
- DESCRIPTION
- -----------
- The *ndisasm* command generates a disassembly listing of the binary file
- infile and directs it to stdout.
- OPTIONS
- -------
- *-h*::
- Causes *ndisasm* to exit immediately, after giving a summary
- of its invocation options.
- *-r*|*-v*::
- Causes *ndisasm* to exit immediately, after displaying its
- version number.
- *-o* 'origin'::
- Specifies the notional load address for the file. This
- option causes *ndisasm* to get the addresses it lists
- down the left hand margin, and the target addresses
- of PC-relative jumps and calls, right.
- *-s* 'sync-point'::
- Manually specifies a synchronisation address, such that
- *ndisasm* will not output any machine instruction which
- encompasses bytes on both sides of the address. Hence
- the instruction which starts at that address will be
- correctly disassembled.
- *-e* 'hdrlen'::
- Specifies a number of bytes to discard from the beginning
- of the file before starting disassembly. This does not
- count towards the calculation of the disassembly offset:
- the first 'disassembled' instruction will be shown starting
- at the given load address.
- *-k* 'offset,length'::
- Specifies that 'length' bytes, starting from disassembly
- offset 'offset', should be skipped over without generating
- any output. The skipped bytes still count towards the
- calculation of the disassembly offset.
- *-a*|*-i*::
- Enables automatic (or intelligent) sync mode, in which
- *ndisasm* will attempt to guess where synchronisation should
- be performed, by means of examining the target addresses
- of the relative jumps and calls it disassembles.
- *-b* 'bits'::
- Specifies 16-, 32- or 64-bit mode. The default is 16-bit
- mode.
- *-u*::
- Specifies 32-bit mode, more compactly than using `-b 32'.
- *-p* 'vendor'::
- Prefers instructions as defined by 'vendor' in case of
- a conflict. Known 'vendor' names include *intel*, *amd*,
- *cyrix*, and *idt*. The default is *intel*.
- RESTRICTIONS
- ------------
- *ndisasm* only disassembles binary files: it has no understanding of
- the header information present in object or executable files.
- If you want to disassemble an object file, you should probably
- be using *objdump*(1).
- Auto-sync mode won't necessarily cure all your synchronisation
- problems: a sync marker can only be placed automatically if a
- jump or call instruction is found to refer to it 'before'
- *ndisasm* actually disassembles that part of the code. Also,
- if spurious jumps or calls result from disassembling
- non-machine-code data, sync markers may get placed in strange
- places. Feel free to turn auto-sync off and go back to doing
- it manually if necessary.
- SEE ALSO
- --------
- *objdump*(1)
|