---
name: "x86dis"
section: "1"
platform: "linux"
package: "x86dis"
version: "0.23-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/x86dis"
---

# x86dis(1)

disassemble a bytestream of Intel x86 instructions

## NAME

x86dis - disassemble a bytestream of Intel x86 instructions

## SYNTAX

x86dis \[**-a** offset\|**--addr=**offset\]\
\
        \[**-r** offset len\|**--range=**offset len\]\
\
        \[**-e** offset\|**--entry=**offset\]\
\
        \[**-s** name\|**--syntax=**name\]\
\
        \[**-d** name\|**--desc=**name\]\
\
        \[**-f** file\|**--file=**file\]\
\
        \[**-o** file\|**--out=**file\]\
\
        \[**-l** file\|**--log=**file\]\
\
        \[**-p** num\|**--pagesize=**num\]\
\
        \[**-h**\|**-?**\|**--help**\]\
\
        \[**-v**\|**--version**\]

## DESCRIPTION

A command-line interface to the libdisasm disassembler library.

## OPTIONS

At least one option from the list **-a, -e, -r** must be given.

- **-f**, **--file**=file

  Read input bytes from **file** instead of **stdin**

- **-o**, **--out**=file

  Write output to **file** instead of **stdout**

- **-l**, **--log**=file

  Log errors to **file** instead of **stderr**

- **-p**, **--pagesize**=num

  Set page size for buffering STDIN to **num** (default 512K)

- **-s**, **--syntax**=name

  Set output syntax to **name**, where **name** is one of **intel**\
   (Intel syntax), **att** (AT&T syntax), **raw** (libdisasm syntax)

- **-d**, **--desc**=name

  Print a description of syntax **name**

- **-a**, **--addr**=offset

  Disassemble single instruction at **offset**

- **-e**, **--entry**=offset

  Disassemble forward from **offset**

- **-r**, **--range**=offset len

  Disassemble **len** bytes starting at **offset**\

All **offset** and **len** parameters are expected to follow the conventions used in **[strtoul(3)](/strtoul/3.md)**, where hexadecimal numbers have the prefix **0x**, octal numbers have the prefix **0**, and decimal numbers have no prefix. A value of **0** for **len** indicates that that range extends to the end of the file.

## EXAMPLES

cat \`which ls\` \| x86dis -s intel -e 0x00 -r 0x00 -1 -a 0xEEEE \
 x86dis -e 0 -s intel \< bootsect.img\
 x86dis -d -s raw -f a.out -e \`readelf -h a.out \|\
\
       grep Entry \|  awk '{ printf( "0x%%x",       strtonum($4) - 0x8048000 ) }\` echo '55 89 e5 83 EC 08' \| perl -ane 'foreach(@F){print pack("C",hex);}'\| x86dis -e 0 -s att

## NOTES

**x86dis** performs no file format parsing, nor any verification that its input is in fact executable binary code. All offsets are assumed to be from the start of the file, with no load addresses applied. The intent is to provide a bytestream disassembler rather than an object file disassembler.

Descriptions of the various output formats can be obtained using the **-d** option.

## AUTHORS

mammon\_ \<mammon\_@users.sourceforge.net\>

## SEE ALSO

bastard(1), [libdisasm(7)](/libdisasm/7.md), [x86\_disasm(3)](/x86_disasm/3.md), [x86\_format\_insn(3)](/x86_format_insn/3.md), [x86\_init(3)](/x86_init/3.md)
