Forum: Compiler & IDEs TMS 7000 Decompilieren in Ghidra


von Johannes M. (jojo20)


Angehängte Dateien:

Lesenswert?

Hallo,

ich kenne mich ein wenig mit Ghidra aus und versuche gerade ein Programm 
gemacht für den TMS70C02 im Full Expansion Mode zu decompilieren.

Dazu habe ich folgendes Modul in Ghidra geladen: 
https://github.com/benpye/tms7000

In der Memory Map von Ghidra habe ich den ROM Speicher Bereich definiert 
und als Read Only markiert. Ebenso habe ich ein in der Schaltung 
vorhandenes externe RAM definiert und als RWX markiert.

Nun bekomme ich zwar relativ viel decompiliert, habe aber immer wieder 
Bereiche von Funktionen mit Daten die unbekannt sind. (Beispiel im 
Screenshot)

Was mache ich falsch?

Ich vermute Ghidra weiß nicht, dass der TMS im Full Expansion Mode 
laufen soll da ich auch Dinge sehe wie z.B. P13 = 0x12;

Letzendlich möchte ich ja nicht wissen welche einzelenen Schritt In der 
CPU laufen, sondern welche Adresse im RAM oder Rom gelesen wird. Ist die 
Frage ob das überhaupt möglich ist? Weil dafür letztendlich ja die 
ganzen ASM Befehle ablaufen müssen in der CPU, Ghidra müsste diese 
Muster nur zum decompileren in den C-Code erkennen können.

von Cartman E. (cartmaneric)


Lesenswert?

Versuchs mal mit dasmxx.

"dasmxx provides a suite of disassemblers for a variety of popular 8-bit 
and 16-bit microprocessors."

Die TMS7000 Serie kennt so etwas wie "user defined opcodes".
Hast du das in Betracht gezogen?

von Johannes M. (jojo20)


Lesenswert?

Den hatte ich auch gefunden, bin aber davor zurückgeschreckt erst alles 
compilieren zu müssen.

Außerdem bin ich denke ich nicht fit genug mit dem reinen Assemblercode 
um das rauszufinden, was ich rausfinden möchte.

Aber dann versuche ich mal dasmxx zu compilieren um das ASM Ergebnis zu 
vergleichen.

von Cartman E. (cartmaneric)


Lesenswert?

Johannes M. schrieb:
> Außerdem bin ich denke ich nicht fit genug mit dem reinen Assemblercode
> um das rauszufinden, was ich rausfinden möchte.

dasmxx ist nur ein simpler Dissassembler und kein IDA Pro.
Er braucht u.U. auch Hilfestellung bzgl. der Speicherbereiche.

Aus den Beispielen:
ffirmware.bin
q,30
c8000

p804d Reset
p91a1 INT1_Handler
p91c3 INT2_Handler
p922e INT3_Handler
p9279 INT4_Handler
p9282 INT5_Handler

bf2d2

vfff4 Vector_Table
effff

: 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.