recht universeller Disassembler

OP #7006844
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.