vAVRdisasm - Free AVR Disassembler Version 1.0 Released!
I’ve finished writing and finalizing my first disassembler, for the AVR architecture. I discovered that avrdisasm, avrdasm, disavr, and even dasmavr names were all taken, so I went eventually went with vavrdisasm.
vAVRdisasm is a finished and working AVR disassembler. It should work on most *nix systems, as well as a Cygwin environment.
Here is an excerpt from the README that gives a brief summary of its functionality:
vAVRdisasm is an AVR program disassembler. It supports all 136 AVR instructions as defined by the Atmel AVR Instruction Set, revision 0856E-AVR-11/05.
This single-pass disassembler can handle Atmel Generic, Intel HEX, and Motorola S-Record formatted files containing valid AVR program binaries.
vAVRdisasm features a handful of formatting options, including:
- Printing the instruction addresses alongside disassembly, enabled by default
- Printing of the destination comments of relative branch/jump/call instructions, enabled by default
- Ghetto Address Labels (see “Ghetto Address Labels” section)
- .DW data word directive for data not recognized as an instruction during disassembly.
The heart of vAVRdisasm is its “Ghetto Address Labels” feature. With this feature, vAVRdisasm can produce directly assemble-able disassembly that can be easily modified without having to manually format the disassembly (i.e. adjusting relative branch/jump/call distances). This means you can disassemble a program, add, remove, and modify any instructions, and directly re-assemble it.
See the vAVRdisasm page for a complete description of vAVRdisasm, its usage, and the links to download the disassembler.

VS Electronics and Embedded Development » vPICdisasm - Free Mid-Range PIC Disassembler Version 1.0 Released! Said,
January 6, 2007 @ 3:56 am
[...] This post may hold a striking resemblence to a previous post, but don’t worry, it’s no deja-vu. I figured I’d also write a PIC disassembler, based on my previous AVR disassembler. The AVR disassembler’s flexible codebase makes it easy to implement other architectures with instruction opcodes of 16-bits or less. This disassembler features everything the previous one did, but also with a few new handy features. [...]