summaryrefslogtreecommitdiff
path: root/ndisasm.txt
diff options
context:
space:
mode:
Diffstat (limited to 'ndisasm.txt')
-rw-r--r--ndisasm.txt94
1 files changed, 94 insertions, 0 deletions
diff --git a/ndisasm.txt b/ndisasm.txt
new file mode 100644
index 0000000..a5f1e59
--- /dev/null
+++ b/ndisasm.txt
@@ -0,0 +1,94 @@
+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 ]
+ [ *-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::
+ 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)