Ein Test zwischen BASCOM(Demo) und ASM (Studio4) Ich erspare mir jeden Kommentar. MFG Uwe
hm, heisst das, dass bascomavr die aufgabe am besten gelöst hat (betrachtend die file-grösse)? bitte um verzeihung für die dumme frage, bin nämlich neu, ein Kommentar würde mich doch erleuchten... :)
Hi Ich kapier net ganz was das zeigen soll?? Die Dateigröße dieser Dateien spielt doch überhaupt keine Rolle!!! Die Studio 4 Datei ist so groß da einfach die komplette ".inc" kopiert wurde.
Ich halte den Vergleich auch für wenig aussagekräftig. Bei kleinen Prgrammen ist der Codeüberhang bei Bascom und auch bei GCC viel größer, als wenn man es direkt in Assembler macht. Code Grösse ist aber auch nicht alles. In Bascom komme ich am schnellsten zu Ergebnissen, die ich dann in GCC übertrage, weil ich da noch mehr Möglichkeiten habe. Mit Assembler möchte ich heute keine grösseren Sachen mehr machen und werde es auch nicht. Ich halte Bacom gerade für Einsteiger gar nicht schlecht, da man schnell ein Erfolgserlebniss bekommt. Umsteigen kann man dann immer noch, wenn es dann sein muß oder man es möchte. Man sollte aber schon bei jeder Sprache wissen, was der Chip wie, wann und wieso tut. Das soll aber auf keinen Fall heißen , daß ich Assembler hasse. Die Sprache hat auch Ihren Reiz und macht viel Spaß. Man muß halt, wie bei jedem Porgramm, viele Kommentare schreiben, damit man nach 2 Wochen noch weiß, was die Zeile macht und wieso. MFG Dieter
Hi! Die Dateigrösse ist nicht wichtig, die Codegrösse und das wie ist das entscheidende.(Man beobachte die letzte Zeile der *.lst Dateien) @Dieter <Code Grösse ist aber auch nicht alles. Deswegen halte ich mich da ja auch zurück. Gruss Uwe
Du glaubst doch nicht wirklich dass Bascom in der lage ist "bessere" Programme hervorzubringen als solche die in puren Assembler programmiert worden? Ja zum Himmel, in welche Märchensprache soll Bascom denn bitte übersetzen? Assembler ist nunmal die letzte direktive, wenn man es kann/will sind somit die schärfsten Espressoprogramme (klein, schwarz, stark) hinzubekommen, ein Hochsprachencompiler ist dort nur eine weitere Stufe um es uns einfacher zu machen, allerdings nicht dem Prozessor.
ja, wenn du ein geistiges Genie bist, dann wirst du in asm immer besser sein als jeder Compiler. Das nächste Problem: hast du ewig Zeit, ein Programm zu optimieren? Kannst du in einem Assemblerprogramm (sogar deinem eigenen, geschweige in dem Code eines anderen) nach einem Jahr noch zusätzliche Funktionen unterbringen? In einem hochoptimierten Code ist das so gut wie aussichtslos. Selten genug kommt es auf das letzte Byte und den letzten gesparten Taktzyklus an, und wenn doch, liegt es an mangelhafter Vor/Grobplanung. Machen wir uns doch nichts vor, 90% aller AVR-Anwendungen verbringen jede Menge Zeit mit Nichtstun, das einsparen von ein paar Takten ist meist kein Argument. Und wenn das Programm komplexer wird, hast du alle Hände voll zu tun, alle Variablen im Griff zu halten, die Parameterübergabe zu organisieren, Funktionen einzubinden oder gar selbst in asm zu schreiben. Der Test/Fehlerbeseitigung eines solchen Programmes nimmt wesentlich mehr Zeit in Anspruch als das Schreiben selbst. Und wenn du einen Fehler ausbügelst, kann es durchaus sein, daß du dir einen anderen gleich wieder mit einbaust. Außerdem soll man die Optimierungsmöglichkeiten moderner Compiler nicht unterschätzen, man hat sogar die Wahl, in welche Richtung optimiert werden soll. Schnellere Laufzeit -> mehr Code und umgekehrt, das ist nun einmal so. Was tust du mit einem asm-Programm in dieser Richtung? Lass mal gut sein, wenn deine Programme sich darauf beschränken, Schalter abzufragen und dementsprechend LEDs an-und auszuschalten, gebe ich dir Recht, da brauchts keinen Compiler.
Natürlich weiss ich die Vorteile eines Compilers zu schätzen, aber nichts desto trotz ginge es meist wohl besser, kürzer und schneller. Aber das ist ja garnicht der springende Punkt in diesem Thread, es geht um die Tatsache dass der Glaube besteht dass das Ergebnis eines Compilers (Bascom) viel besser sei als die Variante in reinem Assembler. Und hättest du dir Uwes Dateianhang einmal zu Gemüte geführt, Herr crazy hore, dann hättest du gemerkt dass es um reines "Tasten abfragen und LEDs schalten" geht. Bei einem komplexen Programm währe der 1:1 Vergleich zur Assembler-Variante auch nicht mehr nachvollziehbar, also der gesamte Vergleich unnützt.
Bitte den unpässlichen Fehler zu entschuldigen, wohlwissend was der Verhaspler bedeutet... Sorry
wenn schon "Herr", dann bitte auch "Sie", soviel Zeit muss sein :-) Ansonsten sind wir uns wohl einig.
Hi! Was meint ihr eigentlich warum ich mich jeglicher Wertung enthalten habe? Eben weil es viele gibt die Bascom nutzen und die damit gut zurechtkommen, sollen sie ja auch. Für mich war es nur mal von Interesse zu wissen wie gross denn ein solcher Code wird und das muss man doch nicht für sich behalten, zumal man immer wider liest das die verschiedenen Compiler ja so fantastisch kurzen Code erzeugen. Ich war jedenfalls über die Verschwendung an Code erschüttert.Ihr müsst eben auch mal hinschauen. Leider gibt es eben immer Leute,die nur auf dem Thema "ASM, Sinn oder Unsinn" rumhacken. Schade! Gruss Uwe
Und genau das ist der Punkt: solange das compilierte Programm in den Programmspeicher passt, ist es doch völlig wurscht, wie groß der Code ist, das ist kein Nachteil, die Vorteile bleiben aber erhalten. Außerdem ist es so, je komplexer ein Programm ist, desto mehr Optimierungsspielraum ergibt sich für den Compiler, da können Programmteile mehrfach genutzt werden, die du als Assemblerprogrammierer gar nicht mehr siehst und froh bist, daß das Programm überhaupt läuft. Ich verstehe dein Problem nicht, sorry. Ansonsten kommt es entscheidend auf den Compiler selbst an. Ich arbeite mit CodeVision und habe relativ regen Kontakt mit Pavel Haiduk, wenn ich Zeit und Lust habe, durchforste ich das erzeugte asm-File, wenn ich Verbesserungsmöglichkeiten sehe, schreibe ich ihm das, und schwups, gibts eine neue Version. Davon lebt der Compilerbau, niemandem ist es möglich, den perfekten Compiler "auf der grünen Wiese" zu schreiben, das ist ein Entwicklungsprozess.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.