Wg. Disasembler: vor etlichen Jahren suchte ich was Geeignetes für mich. Ich fand DASMx. Der ist wohl über 15Jahre alt und läuft in einer Eingabeaufforderung unter MS-DOS/Windows. Allerdings fehlen dem ein paar Sachen, die ich haben möchte.
DASMX würde ich durchaus empfehlen. Er unterstützt diverse Prozessoren, und hat das höchst hilfreiche Feature des "Code Threading": Man deklariert in einer Steuerdatei einen Startpunkt des Programms (z.B. den Reset-Vektor), und DASMX verfolgt dann alle Programm-Ausführungspfade, um zu erkennen, wo Code steht und wo Daten. Funktioniert nicht immer perfekt -- z.B. bei indirekten Sprüngen via Sprungtabelle -- aber man kann dann schrittweise nachhelfen und weitere Details deklarieren. Auch Sprungtabellen, Labelnamen etc. kann man in der Steuerdatei deklarieren.
Idealerweise würde ich mir wünschen, dass das interaktiv funtioniert (ich lege in einer Art IDE weitere Details fest und sehe unmittelbar die geänderte Disassembly). Aber der Disassembler ist auf modernen Rechnern so schnell, dass auch der Zyklus "Disassembly ansehen, nachdenken, Steuerdatei anpassen, neu disassemblieren" OK ist. Das Nachdenken dauert eh am längsten...
Wie von Ralf erwähnt ist DASMX schon recht alt und wird schon lange nicht mehr aktiv gepflegt. Die offizielle Quelle scheint mir dieser Mirror einer alten Geocities-Seite des Autors zu sein: https://www.oocities.org/pclareuk/DASMx/