Forum: Projekte & Code recht universeller Disassembler


von Flo G. (flolix)


Lesenswert?

Guten Abend,

aus dem Projekt
Beitrag "Frage zu Assemblercode TLCS-90, Fehler im Datenblatt"
ist ein Disassembler für einen TLCS-90 Controller von Toshiba 
entstanden.

Das interessante dabei ist - und auch der Grund warum ich den mit euch 
teilen will: Aus Faulheit habe ich das so gemacht, das die Mnemonics und 
dazugehörigen Opcodes einfach als Liste übergeben werden. Daraus bastelt 
sich das Programm dann ein Tabellenkonstrukt zusammen, mit dem dann 
disassembliert wird. D.h. er läßt sich in Null-Komma-Nix auf viele 
Architekturen und Maschinenbefehlsätze anpassen. Das funktioniert für 
den (zumindest für mich) recht komplexen TLCS-90 und wahrscheinlich für 
die meisten anderen Architekturen. Ohne Fehleranfällige switch-case 
Orgien.

Das ganze habe ich auf Github hochgeladen..
https://github.com/flolix/disas

Vielleicht ist es für den einen oder anderen Interessant. Der Code ist 
mit Sicherheit nicht sehr schön und noch sicherer mit vielen Bugs.. ich 
werde da aber ohne Grund keine Arbeit reinstecken - erst wenn ich den 
Disassembler wieder mal brauchen sollte. Fragen können natürlich gerne 
gestellt werden.

Die Hauptarbeit macht die Datei mnems.c
Es können Symbole (Register o.ä.) definiert werden und der enschlüsselt 
das dann.
Achso: und es ist auch nicht der gesamte Befehlssatz vom TLCS-90 
implementiert. Nur die für mich notwendigen Befehle.

Schönen Abend.

Flo

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.