Universal Disassembler program for 8-bit microprocessors
Go to file
2018-06-04 11:21:07 -07:00
65c02.py Start 6809. 2015-07-02 22:04:51 -04:00
6502.py Added 6502 undocumented opcodes 2016-02-21 22:13:14 -08:00
6800.py Start 6809. 2015-07-02 22:04:51 -04:00
6809.py Implement more of 6809. 2015-07-03 23:53:23 -04:00
6811.py Start 6809. 2015-07-02 22:04:51 -04:00
8051.py Added missing $ to immediate hex data 2018-06-04 11:21:07 -07:00
8080.py Start 6809. 2015-07-02 22:04:51 -04:00
65816.py 65816: text formatting: aligned right brackets in opcodeTable 2016-03-04 11:44:47 -08:00
LICENSE Initial commit 2015-06-18 17:18:36 -04:00
README.md Updated README to change status on z80 and 65816 2016-03-04 17:03:59 -08:00
udis.py udis: simplified flag logical operations 2016-02-29 13:27:52 -08:00
z80.py z80: removed inadvertently added test addressing mode 2016-02-29 13:26:40 -08:00

Universal Disassembler program for 8-bit microprocessors

This is a simple disassembler for various 8-bit microprocessors. It reads a binary file specified on the command line and produces a disassembly. It requires Python 3. It has been tested on Linux but should work on any platform that supports Python. See the source code for more details.

The following CPUs are either supported or planned to be supported:

CPU Status


1802 possible

6502 done

65816 done

65C02 done

6800 done

6809 done (incomplete)

6811 done

8080 done

8051 done (incomplete)

F8 possible

Z80 done

usage: udis.py [-h] [-c CPU] [-n] [-a ADDRESS] [-i] filename

positional arguments:

filename Binary file to disassemble

optional arguments:

-h, --help show this help message and exit

-c CPU, --cpu CPU Specify CPU type (defaults to 6502)

-n, --nolist Don't list instruction bytes (make output suitable for assembler)

-a ADDRESS, --address ADDRESS Specify decimal starting address (defaults to 0)

-i, --invalid Show invalid opcodes as ??? rather than constants