TBK 4U :-)



AVR Disassembler

Das Rad wird hier nicht erneut erfunden, keine Angst. Denn wie jeder weiß, bringt Atmels AVRStudio bereits einen Disassembler mit. Aber nicht jeder weiß, dass man diesen auch außerhalb des Studios verwenden kann.

Im Wesentlichen besteht der Disassembler aus einem COM-Object. Für alle, die mit COM kein Problem haben, gestaltet sich die Anwendung denkbar einfach, wie das Beispiel im Download beweist.

Die COMponente ist Free-Threaded. Zusammen mit dem Pointer, den die Disassemble-Methode erwartet, bedeutet das die direkte Bindung an ein MTA. Wird das Object in einem STA instanziiert, wird ein Proxy vorgeschaltet. Der TypeLib-Marshaller marshallt jetzt nur das erste Element, auf das der Pointer zeigt (Angaben zur Länge fehlen, aber damit kommt der TypeLib-Marshaller ohnehin nicht klar). So ganz automatisierungskompatibel, wie sich die COMponente gibt, ist sie also offensichtlich nicht. Leider bedeutet diese Einschränkung auch, dass Sprachen wie z.B. VB außen vor bleiben, da hier die Objecte ausschließlich in STAs instanziiert werden. Etwas ungeschickt, wie ich finde. Aber nun, wer sich mit Disassemblern beschädigt, wird sich von C++ kaum abschrecken lassen. Und im Grunde braucht man das sowieso nicht, da man ja auch das Studio benutzen kann. ;-)

AVR Disassembler, Anwendungs-Beispiel (benötigt AVRStudio Version 4.08 oder neuer)
Download Now!