Comprehending hex files

I am not sure whether this is the right place to ask this question but here goes.

As I understand the build process (and tool chain) before a sketch is written to an arduino board it finds itself on the file system as a hex file (and further googling reveals that this is an intel format hex file).

My question is I have briefly scanned the intel hex format documentation but can't work out how I go from a hex file back to an opcode known to avr. My use case is this. I want to be able to pass a hex file to a Java program and be able to determine which avr instruction has been implemented and which bits of memory are in use.

e.g.

hex files contains :1234567890345 and this corresponds to ADD a1, b1

I have seen the SRecord program on source forge but this is C++ and was therefore wondering whether anyone had seen anything in Java before I start remembering my 10 year old C++.

for the purposes of this exercise assume that you don't have access to the intermediate .o file generated by avr-gcc

Thanks in advance

M

P.S. Apologies if this is in the wrong place.

You should be able to find some useful stuff with a google search using keywords: avr hex disassembler

You should be able to find some useful stuff with a google search using keywords: avr hex disassembler

Thanks for that, I had been googling for "avr hex format" with no luck but I got just what I was after looking for your suggestion. It's also the first time I have seen how quick google is as a search for "avr hex disassembler" pulled back this thread in the top ten answers!!!

You might be interested in some of the notes I made on a similar exercise I've been working on: http://code.rancidbacon.com/LearningAboutAtmelRZRAVEN

--Phil.