- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 11

Thema: Disassembler Listing falsch ?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Alle Programmierer, die ich kenne und die ihr Geld mit Programmieren verdienen, können kein Assembler und haben ein Listing höchstens mal aus Zufall gesehen. Dafür läuft ihr Code aber auf jedem Prozessor, für den es einen C-Compiler gibt. Ich benutze auch den gleichen C-Code für PIC16 und PIC24. Und wenn ich mal einen Algorithmus schneller und komfortabler testen will, teste ich ihn auf dem PC mit nem x86 oder dem Raspberry mit einem ARM.
    Ich muss zugeben, dass mir Assembler die Denkerfalten auf die Stirn massiv zusammenschiebt und ein Programm (komplett) in Assembler oder Basic zu verfassen tatsächlich nicht mehr in meinen Fähigkeitsspektrum liegt.

    Aber Hochsprachen sollen die Programme ja (Sourcemäßig) weit strukturierter gestalten als man es mit Assembler jemals könnte. Der Apollo Computer hatte nicht mehr Leistung als mein alter Casio 9850 Grafik Taschenrechner und die Entwicklung der Software entstammt einem ziemlich großem Entwicklerteam dass Jahre daran Entwickelt hat. Heutzutage darf die Software in einer Entwicklung bis zur ersten Produktreife doch nicht mehr als 1 Jahr betragen oder Projekte werden zusammengestrichen (ist zumindest mein Eindruck den ich durch Erfahrungen bisher so gesammelt habe) ... und obendrauf kommt, dass man meist nur noch als Einzel-Entwickler an Software arbeitet oder nur in sehr kleinen Teams.

    Außerdem kann ich mir kaum vorstellen, dass sich HEUTE oder auch schon direkt nach dem Ausscheiden der betreffenden Entwickler aus dem Apollo Programm irgend jemand in absehbarer Zeit hätte in das Programm alleine einarbeiten können. (Ja mir ist schon klar dass der Kram heute schon von 3ten komplett zerlegt worden ist, aber mit welcher Manpower? Im industriellen Umfeld wäre sowas für einzelne sicherlich eine Monsteraufgabe ein Assembler Programm zu verstehen auch wenn es noch so gut dokumentiert wird ... Ausnahme sind Programme die durch die Doku schon implizit in Hochsprache geschrieben sind)

    Aber wenn man nur ein halbes Jahr hat ein Produkt zu Entwickeln und dann auch noch ständig kleine Patches und Erweiterungen hinzufügt, wird die lesbarkeit der Doku auch nicht besser. Ich habe schon Code von Vorgängern lesen und verstehen müssen (ohne viel Doku, nur mit Protokollspezifikationen) um Probleme zu beheben oder neue Funktionen nachzupflegen. In einer Hochsprache geht sowas meist schnell von der Hand auch wenn der Code fast undokumentiert ist. In Assembler muss man ja erstmal erkennen dass man da eine Schleife vor sich hat (einfach) ... und dann die ganzen Abbruchbedingungen und Verzweigungen erfassen (mäßig leicht und viel zu notieren und zu verfolgen) ... aber wenn dann noch lustige Aktionen hinzukommen, die gewisse Seiteneffekte ausnutzen um effizienter zu sein wirds kompliziert und zeitaufwendig.


    ..... So ... sorry fürs Off-Topic gehen aber back to Topic


    Vielleicht interpretiert er in Verbindung mit dem Code die Reihenfolge etwas anders!
    Wenn ich z.B. eine kopfgesteuerte Schleife ala "while(<condition>)" schreibe, wird im Assembler daraus meist semantisch gesagt eine Fußgesteuerte Schleife, bei der die eigentliche Prüfbedingung als Branch nach dem zu schleifendem Code ausgeführt und vorher nur mit einem goto geskippt. In deinem Fall könnte das schlicht eine "Variante" sein in der der Compiler deine While Schleife konstruiert und der Disassembler versucht den Source halt den Assembler Befehlen, die in einer anderen Reihenfolge im Code stehen, anzupassen. Da aber die Adresse der Instruktion gegeben ist würde ich sagen dass es nicht unbedingt ein Fehler, sondern eher eine Umständliche Darstellung ist, wenn man gerade versucht das Programm sequentiell zu verstehen und dabei nicht jede Adresse von jeder Instruktion immer kontrollieren möchte.

    Gibt es bei dem Tool vielleicht eine Option die es erlaubt die Interpretation des Disassembly zu konfigurieren?



    -------------

    Edit zu Aretobor:

    Die Seite ist aber auch sehr pro-assembler geschrieben. Da werden für andere Sprachen auch viele Teufel an die Wand gemalt wie man es für Assembler auf der anderen Seite tut ... man sollte auch so etwas immer mit einer Prise Salz lesen.

    Edit 2 als Kompromiss: Wenn man Assembler lange genug benutzt und gewisse Strukturen schon aus dem FF kennt (genau so in den ach so komplizierten Hochsprachen) fällt einem das Argumentieren für die jeweilige Seite auch immer recht einfach. aber ich würde zumindest imm Kompromiss sagen, dass der C Schreiber ein undokumentiertes C Programm mindestens genau so schnell versteht wie ein Assembler Schreiber ein undokumnetiertes Assembly Alles ein Frage der Übung und Erfahrung.
    Geändert von Ceos (11.03.2019 um 08:54 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Vorurteil!!

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Vorurteil!!
    Könnte ich genauso zu deinem Link schreiben

    ich haeb ein paar Edits reingemacht weil wir zeitgleich am Tippen waren ... ich bitte um Korrektur
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Die Gedanken sind frei, und wir sind Gefangene unserer Erfahrungen!

    Gruß
    ARetobor

Ähnliche Themen

  1. Bascom Listing ausdrucken
    Von dehnelement im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 09.03.2008, 10:56
  2. Suche Disassembler für PIC
    Von wolf*** im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 15.01.2007, 10:40
  3. Listing-Ausdruck
    Von Step im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 24.08.2006, 08:18
  4. AVRStudio: Listing ?
    Von PicNick im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 28.12.2005, 15:00
  5. Disassembler
    Von Hellmut im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 27.08.2004, 12:20

Berechtigungen

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

12V Akku bauen