Registrieren FAQ Mitgliederliste Suchen TOPFIELD.de Board Foren-Übersicht

Einloggen, um private Nachrichten zu lesen
TOPFIELD.de Board Foren-Übersicht » TAP » Disassembler für MIPS-CPUs Gehe zu Seite Zurück  1, 2, 3  Weiter
Neuen Beitrag schreiben  Auf Beitrag antworten Vorheriges Thema anzeigen :: Nächstes Thema anzeigen 
BeitragVerfasst am: Do 05. Mai 2005, 22:49 Antworten mit Zitat
Eber
TAP-Guru
TAP-Guru
 
Anmeldungsdatum: 07.05.2004
Beiträge: 1696
Wohnort: Mainz


@Acade:
Nicht schlecht Herr Specht - hätte nicht gedacht das so schnell etwas verwertbares rauskommt. Hut ab !!!
Grüße
Eber

_________________
(TF5000PVR mit 250 GB Samsung HD ,nur FreeToAir,Twin-LNB , TAPs: Smartepg, ImproBox)

Nützliche Infos findet man auch im Topfield-Wikipedia. Einfach hier klicken
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: Do 05. Mai 2005, 22:56 Antworten mit Zitat
Aldarin
Timeshifter
Timeshifter
 
Anmeldungsdatum: 06.04.2004
Beiträge: 691
Wohnort: Wien


Schließ mich an und sag tolle Arbeit. Smile
Jetzt können wir wirklich weiter reden. Wink

Gruß
Aldarin
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Do 05. Mai 2005, 23:14 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


Danke Embarassed Very Happy! Aber Ihr meint doch sicher auch DeadBeef's Arbeit Smile ?
Bin mir gar nicht so sicher, daß er dazu disasmips gebraucht hat ... ???

Demnächst gibt's eine neue Version mit Unterstützung symbolischer Adressen.

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: So 08. Mai 2005, 21:45 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


Acade hat folgendes geschrieben::

Demnächst gibt's eine neue Version mit Unterstützung symbolischer Adressen.


Ist jetzt auf meiner Webpage (s. Signatur) abzuholen.

Hier noch ein paar Macros, um ein Mapfile zu erzeugen:

Code:

#define   SYMBOL(a, b)   (sprintf (buf, "%08lx\t%s\n", (a), (b)),   \
                         TAP_Hdd_Fwrite (buf, strlen (buf), 1, fp))

#define   TEXT(a)      {extern void (a)();      SYMBOL ((a),   #a);}
#define   DATA(a)      {extern const char (a)[];   SYMBOL ((a), "@"#a);}

#define   PTR(a)      (SYMBOL (&(a), "@"#a),      SYMBOL ((a),   #a))

Damit können z.B. die Symbole aus der libtap.a durch ein Dump-TAP ausgegeben werden. PTR ist speziell für die API-Funktionspointer.

Mehr Beschreibung gibt's jetzt nicht, aber wer damit nicht zurecht kommt, wird sowieso Schwierigkeiten haben ...

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Mo 09. Mai 2005, 12:50 Antworten mit Zitat
Erdnussnase
Dauerglotzer
Dauerglotzer
 
Anmeldungsdatum: 24.11.2004
Beiträge: 273


DeadBeef hat folgendes geschrieben::
@Erdnussnase:

Die Länge der aktuellen Aufnahme wird an folgenden Stellen im Speicher abgelegt:
....

Man, da ist man mal ein paar Tage auf Dienstreise und da werden einem hier die tollsten Dinge präsentiert. Shocked
Spitze Laughing

Besten Dank für die Info, Mach mich gleich mal dran das umzusetzen...
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: Di 17. Mai 2005, 20:36 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


Und wieder ist der Disassembler ein bißchen schlauer geworden, er erkennt jetzt absolute Sprungadressen als Symbole (natürlich nur die aus den Symboltabellen, diese jetzt auch mit Symbolkommentar beispielsweise für Aufrufparameter) und außerdem Stringreferenzen, z.B. den Formatstring hier drin:

Code:

}{XCMD_HEAPINFO:                                                 : 0 : "(null)"
     0r   80100ca4:    27bdffd0   addiu   $sp,$sp,-48
     4r   80100ca8:    afbf002c   sw      $ra,44($sp)
     8r   80100cac:    27a40020   addiu   $a0,$sp,32=0x0020
     cr   80100cb0:    27a50024   addiu   $a1,$sp,36=0x0024
    10r   80100cb4:    27a60028   addiu   $a2,$sp,40=0x0028
    14r   80100cb8:    0c0008ca   jal      0x80002328            # getHeapInfo
    18r   80100cbc:    00000000   nop
    1cr   80100cc0:    8fa50020   lw      $a1,32($sp)
    20r   80100cc4:    8fa60024   lw      $a2,36($sp)
    24r   80100cc8:    8fa70028   lw      $a3,40($sp)
    28r   80100ccc:    3c048028   lui      $a0,0x8028
    2cr   80100cd0:    2484f240   addiu   $a0,$a0,-3520=0xf240   # 8027f240 "heapSize=%d,freeHeapSize=%d,availHeapSize=%d"
    30r   80100cd4:    0c02b0db   jal      0x800ac36c            # printf_RS232
    34r   80100cd8:    00000000   nop
    38r   80100cdc:    8fbf002c   lw      $ra,44($sp)
    3cr   80100ce0:    27bd0030   addiu   $sp,$sp,48
    40r   80100ce4:    03e00008   jr      $ra
    44r   80100ce8:    00000000   nop


Ist doch eigentlich schon fast Klartext, wie einem die Aufrufe mit den 3 Pointern ins Auge hüpfen, oder?

Obige Funktion stammt übrigens aus Deadbeef's Liste der erweiterten CLI-Funktionen, s. DebugCmds-Thread.

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Di 17. Mai 2005, 21:36 Antworten mit Zitat
Eber
TAP-Guru
TAP-Guru
 
Anmeldungsdatum: 07.05.2004
Beiträge: 1696
Wohnort: Mainz


@acade:
So allmählich könntest Du mal Topfield mitteilen, wo sich die noch vorhandenen Bugs im C-Code verstecken und wie die zu
beheben sind Laughing Laughing Laughing

Man kommt aus dem Staunen nicht heraus....

Grüße

Eber

_________________
(TF5000PVR mit 250 GB Samsung HD ,nur FreeToAir,Twin-LNB , TAPs: Smartepg, ImproBox)

Nützliche Infos findet man auch im Topfield-Wikipedia. Einfach hier klicken
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: Mi 18. Mai 2005, 15:46 Antworten mit Zitat
hagge
TV-Junkie
TV-Junkie
 
Anmeldungsdatum: 12.10.2004
Beiträge: 120
Wohnort: Stuttgart


Sehe den Thread leider erst gerade eben. Eigentlich ist doch in der TAP-Programmierumgebung mit den ganzen MIPS-Tools schon ein Disassembler enthalten: mips-objdump.exe. Wenn man da die Option -d angibt, dann wird der Code disassembliert. Warum dann noch dieses Extra-Tool?

Tschau,

Hagge
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: Mi 18. Mai 2005, 17:17 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


@Eber:

Embarassed Embarassed Embarassed
(Bin aber mit Deinem SmartEPG auch ganz happy! Smile )


@hagge:

Der mips-objdump.exe ist ja schon nicht schlecht, aber nur, wenn Du auch Objectfiles hast und nicht einen FW-Dump ohne all die Zusatzinfos.

Außerdem kann er keine selbst erstellten Symboltabellen verwerten, um seinen Output wesentlich zu verbessern.

Und auch das Disassemblat ist z.T. unverständlich, z.B. in Sachen Branchtarget bei mehreren Funktionen im selben Objectfile: Ab der 2. Funktion ist der Offset von Branchinstruktionen nicht mehr synchron zur linken Spalte mit der aktuellen Adresse ...

disasmips ist genau für Raw Code gedacht, und an einigen Stellen (z.B. die oben erwähnten Stringreferenzen) bereits jetzt (etwas) intelligenter.

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Do 19. Mai 2005, 21:46 Antworten mit Zitat
F_Klemm
Vielfrager
Vielfrager
 
Anmeldungsdatum: 16.08.2004
Beiträge: 18


Aldarin hat folgendes geschrieben::

Ich verstehe die ganze Diskusion nicht, ob Korea damit einverstanden sein soll oder nicht. Dekompilieren einer Software ist doch keine illegale Strafhandlung.

Im "modernen" Recht nennt sich das Reverse Engineering und ist meist strafbar.

Zitat:

Wenn man Sie verändert oder publiziert schon.
Ich möchte einmal hier den ersten erleben, der etwas brauchbares aus der Erkenntnis vom Dekompilat zustande bringt. Dann reden wir weiter.

Wenn Chinesen das kopieren wollen, setzen sie 20 geeignete Personen für 6 Monate ran und
zieht das Ding durch. Ob hier ein paar kleine
Hinweise stehen, interessiert eher wenig bis
überhaupt nicht.

Ansonsten ist man meistens ohnehin wesentlich
schneller, wenn man die Funktionsweise aus
Sicht des Users sich ansieht, die schwersten
Mängel analysiert und alles vom Scratch an
neuprogrammiert. Das, was bei solchem
Vorgehen rauskommt, ist erst mal altlastenfrei
und man ist häufig dadurch in den ersten 1 bis 2 Jahren wesentlich agilier als die Komkurrenz.
Fehlende Betriebsblindheit kommt dann noch
dazu.
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: Fr 20. Mai 2005, 9:20 Antworten mit Zitat
DeadBeef
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 28.03.2005
Beiträge: 90
Wohnort: am Schwäbischen Meer


F_Klemm hat folgendes geschrieben::
Im "modernen" Recht nennt sich das Reverse Engineering und ist meist strafbar.


Das, was wir tun oder vorhaben, kann meiner Meinung nach keinen Strafbestand darstellen (zumindest nicht in Deutschland). Denn, erstens, haben wir keine Softwarelizenzen sondern ein Produkt erworben, ohne einen Lizenzvertrag zu unterschreiben, und, zweitens, umgehen wir keine Kopierschutzmaßnahmen oder Ähnliches, sondern versuchen, das bestehende Produkt zu erweitern bzw. zu verbessern.

Gruß
DeadBeef
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Sa 21. Mai 2005, 16:29 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


@F_Klemm:


Wie Du schon schreibst: "Ob hier ein paar kleine Hinweise stehen, interessiert eher wenig bis überhaupt nicht."

Mehr ist für Amateure doch sowieso nicht drin, es wäre ein gewaltiger Aufwand, die ganze FW (mindestens 5000 Funktionen) zu interpretieren und das will ja auch gar keiner. Außerdem, wo wäre der Schaden für Topfield, die verkaufen die Hardware, und mit unseren TAPs / SW-Verbesserungen auf keinen Fall weniger, sondern mehr! Smile

Ciao,
Acade

Ach ja, die neueste Version von disasmips kann jetzt auch HTML-Output erzeugen Wink

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Sa 21. Mai 2005, 18:33 Antworten mit Zitat
DeadBeef
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 28.03.2005
Beiträge: 90
Wohnort: am Schwäbischen Meer


Hi Acade!

Die Umsetzung meiner Vorstellungen ist Dir super gelungen! Jetzt steige ich um! Smile

Ich habe noch folgende Punkte/Verbesserungsvorschläge (die natürlich nur "nice to have" sind):

    o In der generierten index.htm Datei fehlt noch ein Slash nach "URL=file:/".
    o Es wäre nett, wenn die Coprozessor-Anweisungen auch dekodiert werden. Meistens handelt es sich um "move to coprocessor register" (mtc0) und "move from coprocessor register" (mfc0) Anweisungen.
    o (bin)101111* sind "cache" Anweisungen.
    o Die doppelte Darstellung von numerischen Operanden ist sehr praktisch (vor allem bei negativen Zahlen). Zur besseren Übersicht sollte man die zweite Darstellung hinter einem Kommentar verstecken.
    o Manche Index-Operationen werden über Register ausgeführt, die vorher nur mit "lui" geladen wurden (d.h. die untere Hälfte wird gar nicht nachgeladen). Dies könnte man auch als eine zusammengesetzte Adresse darstellen, wie bereits in anderen Fällen (natürlich soweit es sich erkennen läßt).
    Code:
       lui $t0,0x8019
       lw $a0,0x1234($t0)   # 80191234

    o Um eine 8-stellige Hex-Zahl zu ermitteln, werden im Disassembler offensichtlich nur zwei aufeinanderfolgende Befehle ausgewertet. Denn wenn die zweite Hälfte einer Zahl einen oder mehrere Befehle später auftaucht, gibt es keine Ausgabe im Kommentar.
    Code:
        acr   80198d88:    3c198019   lui   $t9,0x8019
        b0r   80198d8c:    3c0f8019   lui   $t7,0x8019
        b4r   80198d90:    8f392794   lw   $t9,10132($t9)
        b8r   80198d94:    25ef2594   addiu   $t7,$t7,9620=0x2594

    Man könnte versuchen, diese "Mustersuche" über mehrere Befehle auszuweiten. Der Inhalt des Registers, das vorher geladen wurde, wird gemerkt, bis die untere Hälfte nachgeladen wird oder das Register anderweitig benutzt wird.
    o jr $31 bedeutet nich immer, dass eine Funktion zu Ende ist (siehe z.B. 0x8019f7ac-0x8019f858). Besonders in den Fällen, wo kein Stack benötigt wird, kann ein "return" mittendrin auch auf "jr $31" abgebildet werden. Ich bin mir aber nicht sicher, ob man dafür eine Lösung finden kann, ohne viel Aufwand reinzustecken.
    o Bei größeren Funktionen wäre es auf jeden Fall hilfreich, wenn die relativen Adressen innerhalb der Funktion auch mit Hyperlinks ausgestattet werden. Dann kann man im Browser leichter hin und zurückspringen.
    o Mein Windows XP hat Probleme mit dem Sortieren der Dateinamen in aufsteigender (Adress-)Reihenfolge. Dies erschwert die direkte Suche der passenden Datei. Vielleicht liegt es an den Hexadezimalform der Namen. Ich glaube, es würde helfen, wenn man ein Präfix mit fortlaufenden Zahlen in Dateinamen voranstellt (z.B. A0001_8000000.htm).

Danke nochmal fürs tolle Tool.

Gruß
DeadBeef

_________________
DeadBeef's TAP Collection
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: So 22. Mai 2005, 0:04 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


Hi DeadBeef,

schön, wenn's Dir gefällt Very Happy und danke für Deine Anmerkungen!

Dazu Folgendes (ich numerier' die Punkte durch, dann gibt's zukünftig keine Verwirrungen):

A1. file:// ist jetzt drin (und bleibt natürlich weg, wenn's ein relativer Pfad ist). Allerdings muß ein absoluter Pfad (zumindest bei Firefox) unter Windoof auch den LW-Buchstaben beinhalten. Ich meinte, mit file:/ ging's auch so, war aber evtl. doch nicht.

A2. mtc0 und mfc0 ist jetzt dekodiert (bitte bei -t das "ambiguous" ignorieren).

A3. cache ist rudimentär dekodiert (kommt aber auch nur 2x vor in den 2 MB).

A4. Die doppelte Darstellung von numerischen Operanden möchte ich wie sie ist lassen, ein #Kommentar soll eine "besondere Erkenntnis" darstellen.

A5. Die Erkennung von Speicheradressen über mehrere Befehle hinweg ist noch recht primitiv und wird noch verbessert, kann aber dauern (Wochen?). Auch der lui ohne addiu wird dann erkannt werden.

A6. jr $31 erzeugt ja eigentlich auch nur eine Leerzeile und die ist auch dann nicht verkehrt an dieser Stelle, wenn die Fkt. noch weitergeht Wink

A7. Hyperlinks für Branchadressen kann ich irgendwann nachrüsten, halte ich aber jetzt nicht für so wichtig. Evtl. wäre das mit HTML auch noch schöner zu lösen ...

A8. Die HTML-Dateinamen haben ja keinen Anfangsbuchstaben. Wenn das das Problem löst, setz ich einfach ein A_ davor (ohne Zusatz-Index). Kannst Du ausprobieren, ob's dann funzt? Ich habe das Problem hier nicht (kein XP), wann passiert das denn genau?

Noch ein Bonbon: Jetzt wird auch noch eine Aufruf-Statistik erzeugt, damit kannst Du sehen, welche Funktionen sich richtig lohnen Smile

Viel Spaß,
Acade

Bin die nächsten Tage nicht im Lande, bis später!

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Di 31. Mai 2005, 0:57 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


Hi DeadBeef,

hier die neuesten disasmips-Features (ich antworte hier im Thread, weil das evtl. auch andere interessiert):

A8: HTML-Dateinamen sind jetzt (richtig sortiert natürlich) in symbols.htm eingearbeitet, somit besteht kein Grund mehr, die Files über einen OS-Explorer aufzumachen. Außerdem strukturiert dies die symbols.htm, man sieht also gleich die Aufteilung der Funktionen und Daten in die Files.

A9: Die Aufrufstatistik ist jetzt 500 Einträge lang.

A10: Die Stringreferenzen berücksichtigen jetzt auch eingebettete \t, \r und \n. Diese werden in Blanks konvertiert.

A11: Für die COP0-Befehle habe ich nur das mips.pdf-File, in dem die Befehle mtc0 und mfc0 mit den Bits 11..15 (rd, die 32 COP0-Register) und 0..2 (sel) dargestellt werden. Daraus mache ich rd.sel. Hast Du eine bessere COP0-Doku?

Und jetzt kommen die richtigen Schmankerln Smile :

A12: Die Adressen in den Mapfiles (-m) können aus (beliebigen!) Summen von Hexwerten und schon definierten Symbolen bestehen, z.B.:
Code:

80000000 RAM      Beginn des RAMs      # absolutes Symbol
RAM+180  START    Beginn des Codes     # relatives Symbol


A13: In den Mapfiles (-m) können mit dem Spezialsymbol // Adressen mit Befehls-Kommentaren gekennzeichnet werden, ohne daß ein Symbol eine neue Funktion einleitet, allerdings nur im Code, nicht in den Daten (die bekommen sowieso ein "richtiges" Symbol mit evtl. Symbol-Kommentar), also z.B.
Code:

80002328         getHeapInfo
getHeapInfo+4    // save s0

führt zu
Code:

}{getHeapInfo:
     0r 80002328:    27bdffc8   addiu   $sp,$sp,-56
     4r 8000232c:    afb00018   sw      $s0,24($sp)     // save s0


A14: Jetzt kommt's: Als Spezialkommentar kann ein Wert für $gp vorgegeben werden, der ab dieser Adresse für die Zugriffe auf die globalen Daten verwendet wird, z.B.
Code:

82190600   __gnu_compiled_c
8219ac00   @_tap_gotStart
__gnu_compiled_c   //   $gp=_tap_gotStart

führt zu
Code:

}{__gnu_compiled_c:
     0r   82190600:    27bdffd0   addiu   $sp,$sp,-48   // $gp=_tap_gotStart
...
    54r   82190654:    8f830120   lw   $v1,288($gp)   # 8219ad20 -> @TAP_Hdd_Delete -> TAP_Hdd_Delete

$gp kann für verschiedene Codebereiche auch immer neu definiert werden und auch wieder ganz abgeschaltet werden ($gp=0 oder $gp=unauswertbarer_string).

So, damit dürfte Dein Problem mit den globalen Variablen deutlich reduziert sein, und für verschiedene FW-Versionen braucht man eh verschiedene Mapfiles.

Viel Spaß damit,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Mi 01. Jun 2005, 0:48 Antworten mit Zitat
DeadBeef
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 28.03.2005
Beiträge: 90
Wohnort: am Schwäbischen Meer


Hi Acade!

Es klingt super! Ich werde die neuen Features demnächst austesten. Heute habe ich nur den Standardmodus mit den existierenden Map-Dateien benutzt.

Danke für Deine Unterstützung.

Gruß
DeadBeef

PS: Die MIPS CPU/COP0 Befehlsbeschreibung im PDF-Format habe ich über Google gefunden. Die rd Dekodierung scheint noch nicht ganz zu stimmen. Das sel Feld wird laut mehreren Quellen eher selten unterstützt.

_________________
DeadBeef's TAP Collection
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Do 02. Jun 2005, 22:56 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


DeadBeef hat folgendes geschrieben::

...
PS: Die MIPS CPU/COP0 Befehlsbeschreibung im PDF-Format habe ich über Google gefunden. Die rd Dekodierung scheint noch nicht ganz zu stimmen. Das sel Feld wird laut mehreren Quellen eher selten unterstützt.


Hi,

mfc0/mtc0 ist jetzt ok, war ein Bug drin (rt statt rd). sel wird jetzt nur angegeben, wenn != 0. Außerdem gibt's als Kommentar den Registernamen.

Als nächstes geht's A5 an den Kragen Wink

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Mi 08. Jun 2005, 22:20 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


Hi,

es gibt Neues von der Disassembler-Front:

A5.1: Alle Doppelbefehls-Speicherreferenzen vom Typ "lui + addi / ori / load / store" werden jetzt komplett erkannt. Dies bringt erheblich mehr Kommentare in den Output!

A5.2: Die Erkennung von Speicheradressen über mehr als 2 Befehle hinweg ist leider nicht so einfach zu realisieren und wird noch länger dauern.

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Mo 13. Jun 2005, 19:07 Antworten mit Zitat
DeadBeef
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 28.03.2005
Beiträge: 90
Wohnort: am Schwäbischen Meer


Hi Acade!

mit der neuen FW (beta vom 10.06.05) hat die letze Disassembler-Version ein "zyklisches" Problem:

24r 800a9124: af8083ec sw $zero,-31764($gp) # 8039c024 -> 8039c024 -> 8039c024 -> ...

In der Textausgabe hört der Disassembler an dieser Stelle auf, nachdem er die Adresse ein paar tausend mal ausgegeben hat. In der HTML-Ausgabe geht es in der nächsten Datei weiter, als ob nichts wäre (die Adresse wird aber auch entsprechend oft ausgegeben, wodurch die HTML-Datei nicht interpretierbar wird).

Ich werde ältere Versionen ausprobieren, die nichts von $gp Adressierung wissen.

Gruß
DeadBeef

PS: Ansonsten ist alles super!

_________________
DeadBeef's TAP Collection
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BeitragVerfasst am: Mo 13. Jun 2005, 22:55 Antworten mit Zitat
Acade
Erfahrener Benutzer
Erfahrener Benutzer
 
Anmeldungsdatum: 19.04.2005
Beiträge: 56
Wohnort: Bayern


DeadBeef hat folgendes geschrieben::
...
mit der neuen FW (beta vom 10.06.05) hat die letze Disassembler-Version ein "zyklisches" Problem:
...


Hi DeadBeef,

Problem ist gefixt: Rekursionstiefe auf 5 beschränkt, bei direkten Selbstreferenzen (also Zykluslänge 1) wird gleich nach der ersten Wiederholung abgebrochen (damit man die Selbstreferenz noch erkennen kann).

Nutzt Du jetzt eigentlich auch die Möglichkeit, per $gp adressierte Variable mit relativen Symbolen darzustellen? (Für den FW-Wechsel praktisch!)

Ciao,
Acade

_________________
TF5000PVR / FW 5.11.55
http://acade.au7.de/disasmips.htm
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Disassembler für MIPS-CPUs
  TOPFIELD.de Board Foren-Übersicht » TAP
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst Deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst Deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 2 Stunden  
Seite 2 von 3  
Gehe zu Seite Zurück  1, 2, 3  Weiter
  
  
 Neuen Beitrag schreiben  Auf Beitrag antworten  



Powered by phpBB 2.0.11 © phpBB Group phpBB Style by Trushkin.net