What's the idea of different encodings, like T1, T2 and T3?
I need to figure out the instruction from the binary assembly code, so
how can I tell which encoding applies? Or where should I start the decoding?
I need to be able to decode both ARM and Thumb instructions.
What I really need is the address(es) the execution may go to - I'm trying to put together
a gdb stub that uses SW interrupt, and I need the addresses for single stepping,
but knowing how to make full disassembly wouldn't hurt either.
I tried writing it for immediate Single Data Transfer (= Load/store word and unsigned byte) for
only ARM A1 (affects program flow if load and Rd = PC, or both load and store if Rn is PC and indexing is used) and I was scared to think about what kind of job it is to do all instructions, when just LDR immediate has one ARM encoding (A1) but 4 Thumb encodings. Didn't even check the other instructions of the same group for different encodings.
Or am I taking up 'building Cologne Cathedral'?
( http://www.colognecathedral.net/Cologne ... Facts.html
De-bugging is for sissies - real men do de-monstrations.