Moin Klebwax,
Kein Kommentar...Vergiss, daß es Assembler überhaupt gibt.
Nur so (mit dem Disassembler Listing) kann ich oftmals Probleme überhaupt finden, die mir z.B. der Compiler verbockt hat.
Oh Oh, klingt jetzt negativ, ist aber nicht neagtiv gemeint....
Du weist aber schon, das z.B. es im C99 Standard 190 Fälle gibt, wo nicht eindeutig festgelegt ist wie der Compiler eine C-Anweisung zu übersetzen hat.Die Aufgabe eines Compilers ist, funktionierenden Code zu erzeugen. Der muß unter allen Bedingungen funktionieren, egal was vorher oder nachher passiert.
Wobei generell solcher Code möglicht vermieden werden sollte.
Ich würd schon gerne wissen was er daraus macht und das steht nunmal im Assembler Listing.
Stell Dir vor, dein Code funktioniert einwandfrei in der Optimierunsgsstufe O-0 also ohne Optimierungen
nun stellst Du eine andere Optimierungsstufe ein und plötzlich geht der Code nicht mehr.
Was macht Du dann ? Festlegen dass man keine Optimierung verwenden darf ?
Das wäre in meinen Augen grob fahrlässig,
also bleibt einem kaum etwas anderes übrig als im Assemblerocde zu wühlen.
Mal abgesehn davon, dass es mir Spass macht, ist hier fast immer die Ursache zu finden, da der C Code ja nicht verändert wurde.
Das heisst jetzt nicht dass der C Compiler Mist gebaut hat, sondern dass ich ihm anscheinend nicht richtig klar gemacht habe was er zu tun sollte....
Es gibt auch Prozessor Probleme die je nach Code Implementierung auftreten können oder auch nicht,
also abhängig davon was der Compiler für Code erzeugt. (Egal was für ein Compiler oder Programmiersprache das ist)
Auch hier gibt NUR der Blick in den ASM Code Aufschluss darüber.
Viel mehr möcht ich jetzt dazu garnicht dazu sagen, das artet sonst wieder in wilde Diskussionen aus, das war aber nicht Sinn des Threads.
Eigentlich wollte ich nur darauf aufmerksam machen, dass der angezeigte Dissambler Code nicht korrekt ist
und ich dadurch unnötig Zeit investieren muste um mein eigentliches Problem zu finden.
@PicTure:
Ja, ich habe Ähnliches früher auch schon erlebt, dass die Rücküberstzungen von Disassemblern verschiedener Hersteller anders aussahen.
Das waren noch zu Zeiten des 8086.
Problematisch ist das natürlich wenn der Source Code nicht zur Verfügung steht, denn dann weis er nicht ob es sich um
Daten oder evtl. Tabellen handelt oder ob es Code sein soll.
.
Siro
Lesezeichen