Archive for January, 2007

vAVRdisasm - Free AVR Disassembler - Updated to version 1.2

Besides a small bug fix, vAVRdisasm now can format data constants in binary and decimal, in addition to the default hexadecimal base. The base representation can be selected with the - -data-base-… options.

See the vAVRdisasm page for more information and links to download the new version.

Comments

vPICdisasm - Free Mid-Range PIC Disassembler Version 1.0 Released!

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.

vPICdisasm is a finished and working Mid-Range PIC 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:
vPICdisasm is an PIC Mid-Range MCU family program disassembler. It supports all 35 PIC instructions, plus the two deprecated ones (”option” and “tris”) as defined by the PICmicro Mid-Range MCU Family Instruction Set, document DS31029A.

This single-pass disassembler can handle Intel HEX8, and Motorola S-Record formatted files containing valid PIC program binaries.

vPICdisasm features a handful of formatting options, including:

  • Printing the instruction addresses alongside disassembly, enabled by default
  • Ghetto Address Labels (see “Ghetto Address Labels” section)
  • Literal operands represented in either hexadecimal, binary, or decimal bases, and as ASCII in an assembly comment
  • Data word directive for data not recognized as an instruction during during disassembly

The heart of vPICdisasm is its “Ghetto Address Labels” feature. With this feature, vPICdisasm can produce directly assemble-able disassembly that can be easily modified without having to manually format the disassembly (i.e. adjusting jump or call distances). This means you can disassemble a program, add, remove, and modify any instructions, and directly re-assemble it.

See the vPICdisasm page for a complete description of vPICdisasm, its usage, and the links to download the disassembler.

Comments

$10 EL-backlit 16×2 LCDs… $6 830-hole breadboards…

Comments

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.

Comments (1)