Blame ndisasm.xml

Packit Service 3b8507

Packit Service 3b8507

Packit Service 3b8507

Packit Service 3b8507

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