path: root/ndisasm.txt
diff options
authorCyrill Gorcunov <gorcunov@gmail.com>2013-02-17 22:50:19 +0400
committerCyrill Gorcunov <gorcunov@gmail.com>2013-02-17 22:50:19 +0400
commit1a63699ce58044f99bd56bab89d3b08e41d29bd9 (patch)
tree9e50c8efd7fa2b5e9d3522401a39e7f66c5fb2ca /ndisasm.txt
parenta709e767f608f633cd14ac04c4f776fc2c57a00c (diff)
man: Generate manpages from asciidoc format
The asciidoc format is a way more easier to read by a human. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Diffstat (limited to 'ndisasm.txt')
1 files changed, 94 insertions, 0 deletions
diff --git a/ndisasm.txt b/ndisasm.txt
new file mode 100644
index 00000000..a5f1e59b
--- /dev/null
+++ b/ndisasm.txt
@@ -0,0 +1,94 @@
+:doctype: manpage
+:man source: NASM
+:man manual: The Netwide Assembler Project
+ndisasm - the Netwide Disassembler, an 80x86 binary file disassembler
+*ndisasm* [ *-o* origin ] [ *-s* sync-point [...]] [ *-a* | *-i* ]
+ [ *-b* bits ] [ *-u* ] [ *-e* hdrlen ]
+ [ *-k* offset,length [...]] infile
+The *ndisasm* command generates a disassembly listing of the binary file
+infile and directs it to stdout.
+ Causes *ndisasm* to exit immediately, after giving a summary
+ of its invocation options.
+ 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.
+ 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.
+ 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*.
+*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.