-
        

Ergebnis 1 bis 8 von 8

Thema: Code Analysis / Reverse engineering

  1. #1
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836

    Code Analysis / Reverse engineering

    Anzeige

    Hi Freaks !

    Um mir für die Diskussionen um Compiler-Geschwindigkeiten Argumente zu verschaffen, hab ich begonnen, mir einen HEX-file Analyzer zu schreiben, der mir den vom Compiler generierten Code ein bißchen auftröselt
    Im Attachment als Beispiel eine Vergleich dreier Schleifen-Konstruktionen (FOR, DO, WHILE) und was der Bascom daraus macht.

    Wenn eine ein bißchen Assembler kann, ist das Zeugs ganz gut lesbar.


    --> Moderator: Vielleicht ist das ja auch eine "Projekt-Vorstellung", was weiß denn ich ß
    Angehängte Dateien Angehängte Dateien
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #2
    Gast
    kannste denn den anhang nochmal reinstelln? der iss nicht mit drinne

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Als Gast siehst du nix. Du mußt dich registrieren lassen
    (tut garnicht weh, hab' ich gehört)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Obwohl der WinAvr die *.lss Liste erzeugt, in der er den generierten Code darstellt, hab ich trotzdem zum Vergleich die C-Variante erzeugt.
    Ich hab aber keinen "print" in die Bodies reingestellt, da der ja als Funktionsaufruf zuviel Zusätzliches generieren und das Schleifenkonstrukt schwerer erkennbar machen würde.
    Und den Optimizer hab ich natürlich abgedreht.

    Man sieht schon einige Unterschiede, wie die Herren Compiler das so im Detail machen.
    Angehängte Dateien Angehängte Dateien
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    schön aufgedröselt !
    Stell doch noch den RAM / Flash Verbrauch, und die Laufzeit gegenüber.
    Und evtl. noch zum Vergleich, was man in Assembler schreiben würde.

    Gruß Jan

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Hi, Jan
    Ich werd auch ein Programm in Bascom UND C schreiben, da kann man das dann in etwa vergleichen. Laufzeit ist so 'ne Sache, wahrscheinlich einfach unterm Strich über den PC, nach genügend Cycles.
    Was ich aber schon gesehen habe, beim Interuppt ist der Bascom ein Tier, er pusht und popt wirklich alle register von links nach rechts.
    Und bei "Nosave" gleich garnix. Na ja.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hi Robert,
    bei so kleinen Schleifen kannst du die Laufzeit doch
    über die Anzahl der Takte feststellen. Die meisten
    Avr-Befehle brauchen einen Taktzyklus.
    Manche brauchen zwei oder drei, das steht im Datenblatt.
    Oder du lässt die Schleifen im Simulator von AVR-Studio laufen,
    der zählt die Takte mit.

    Gruß Jan

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ah so, Schleifen/Detail bezogen. Ja klar, das geht natürlich ganz präzise.
    Derweil kämpf ich noch, wie ich am besten solche Sequenzen wie:
    LDI XL, $78
    LDI XH, $01
    zu der Aussage: Load X, $0178
    bringen kann, damit ich dann Namen vergeben kann.
    Na ja, ist wie Kreuzworträtsel.
    Du kennst Dich ja aus, was erzähl' ich dir
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •