-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Ist Assembler noch wichtig?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2004
    Alter
    28
    Beiträge
    119

    Ist Assembler noch wichtig?

    Anzeige

    Ich würde mir gerne ein oder mehrere Bücher über Elektronik/Robotik und den Umgang mit Mikrocontrollern kaufen. (http://www.roboternetz.de/phpBB2/vie...=156064#156064)

    Ich würde die Controller am liebsten in Assembler (am aller liebsten in c++, aber bei 8-bit.Controllern wird das schwierig) beschreiben, da ich glaube, dass das Vorteile in Bezug auf Geschwindigkeit, Speicherplatz und zeitkritischen Anwendungen (bei RISC mit genau einem Assemblerbefehl/Takt ist das gut abschätzbar) bringt. Besonders bei 8-bit-Controllern könnte das einen Vorteil bringen.
    Ist das wirklich so, oder ist heute Assembler eher hinderlich und unproduktiv im Gegensatz zu einfacheren Sprachen wir C oder gar BASIC?
    Verliert man in Assembler bei größeren Programmen leicht den Überblick?

    Diese Buch scheint wirklich toll zu sein:
    http://www.amazon.de/exec/obidos/ASI...816553-3628061
    Aber was ist der Nachteil von Bascom?
    Handbuch: Ein Objekt, das den Monitor auf Augenhöhe anhebt.
    Hardware: Die Teile eines Computers, die man treten kann.
    Multitasking: Mehrere Dinge gehen gleichzeitig kaputt.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    Aua, jetzt kommt gleich wieder ein Glaubenskrieg

    Aber was ist der Nachteil von Bascom?
    kommt drauf an, was du machen willst.
    Wenn dir Geschwindigkeit über alles geht, geht wohl kaum ein Weg an Assembler vorbei.
    Mir Bascom kann man allerdings schon sehr viel erreichen, wenn es denn nicht absoluter Highspeed sein muß.
    Und das ganze geht auch noch recht einfach.
    Jede Menge fertiger Funktionen nehmen dir viel Arbeit ab.
    Und wenn es unbedingt mal schneller gehen soll, dann kann man auch Assembler Befehle einbinden.
    Nachteil bei Bascom :
    sowas geht nicht: X=a/b+c*d
    Das muß man immer stückchenweise aufdröseln.
    Warum das nicht geht, keine Ahnung. Das konnte damals schon mein ZX81

    Ich bin jedenfalls trotzdem sehr zufrieden mit Bascom.
    Ich hätte einige Projekte nicht rechtzeitig fertigbekommen, wenn ich mich mit anderen Sprachen hätte rumschlagen müssen.

    Mit "C" habe ich mich auch mal befasst, aber irgendwie ging das nicht an mich. Ich fand das umständlicher und komplizierter als Assembler.
    Geschmacksache. Ich habe jedenfalls nach einigem probieren aufgegeben, da ich ja mit Bascom eine einfache Alternative habe.
    Warscheinlich gewöhnt man sich auch schnell an die "C" syntax, wenn man genug Energie reinsteckt.

    oder ist heute Assembler eher hinderlich und unproduktiv im Gegensatz zu einfacheren Sprachen wir C oder gar BASIC?
    Naja, das kommt eben wieder auf das Einsatzgebiet an.
    Die Produktivität ist bei Bascom eben enorm, da man mit einem Basic-Zehnzeiler eben schneller fertig ist, als mit einem 100 Zeilen-Assemblercode.

    Bei Bascom muß man sich um viele Sachen eben nicht selber kümmern.
    Das geht einfach so.

    Wenn man allerdings nicht mit Bascom weiterkommt (ging mir noch nicht so) , weil zB. Timingprobleme auftauchen, dann ist es schön, noch eine andere Sprache zu beherrschen.

    Gruß
    Christopher

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Aber was ist der Nachteil von Bascom?
    Die Antwort ist ganz einfach,
    solltest Du nur Bascom verwenden und den Blick über den Tellerrand scheuen, wirst Du nie verstehen, was in Deinem AVR vorgeht, und über jedes Problem, wozu es keine Befehle in Bascom gibt stolpern.

    Solltest Du schnell zum Erfolg kommen wollen, nimm Bascom, aber versuche es auch mit Assembler, C damit Du weißt, wie man es anders machen kann wenn es Problemme gibt.

    Gruß Sebastian

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    29
    Beiträge
    2.624
    Hallo Mercator!
    Vielleicht kann ich Dir mit dem folgenden Link weiterhelfen und dem Glaubenskrieg aus dem Weg gehen bzw. ihn verkürzen! ;o)
    http://www.roboternetz.de/wissen/ind...nd_Hochsprache

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    das mit dem "Glaubenskrieg" war sowieso nur Spaß
    Macht eh' keinen Sinn.
    Man sollte sich alles mal angucken und dann sehen, was einem besser liegt, bzw. was für das Projekt besser geeignet ist.
    Über den Tellerrand schauen hat sowieso noch nie geschadet.
    Kann nur positiv sein.

    Gruß
    Christopher

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2004
    Alter
    28
    Beiträge
    119
    Danke für eure Hilfe. Ich werde wahrscheinlich weiter in C programmieren, da es vom Komfort und Leistung ungefähr die Mitte darstellt.
    Kennt ihr Bücher, die sich mit der allgemeinen Handhabung von Mikrocontrollern, EEPROMS, Übertragungselektronik (also alle elektronischen Themen zum Roboterbau) beschäftigen? Denn wenn ich bei Amazon suche, dann weiß ich oft nicht welches Buch nun zu weit führt (ich möchte das Buch auch verstehen, wenn ich das Fach nicht studiere) und welches überhaupt die Themen durchnimmt, die mich interessieren.
    Handbuch: Ein Objekt, das den Monitor auf Augenhöhe anhebt.
    Hardware: Die Teile eines Computers, die man treten kann.
    Multitasking: Mehrere Dinge gehen gleichzeitig kaputt.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676

    Re: Ist Assembler noch wichtig?

    Zitat Zitat von Mercator
    ... oder ist heute Assembler eher hinderlich und unproduktiv im Gegensatz zu einfacheren Sprachen wir C oder gar BASIC ...
    Wenn du den Assembler beherscht, kannst du dich mit dem Prozessors in seiner Muttersprache unterhalten.
    Aber da liegt auch das Problem, denn jeder Prozessortyp, beim AVR genauso wie bei Intel, AMD, Motorola usw hat seinen eigenen Dialekt. Um die Feinheiten zu kennen brauchst du Übung und die richtigen Datenblätter.

    Das soetwas aber unproduktiv ist, hat man schon vor langer Zeit gemerkt.

    Die erste gute Abhilfe war und ist immer noch C. C ist (für mich) ein Assemblerersatz mit dem man sehr nahe an die Ergebnisse des Maschinenspezifischen Asembeler kommt. Wenn du irgendwann einen anderen Prozessor nehmen willst, sollte dein C-Programm dort auch laufen. Der C-Compiler ist der Dolmetscher und übersetzt in die Muttersprache des richtigen Prozessors. Wenn er gut ist, kennt er auch die Feinheiten des richtigen Dialekts. Wie gut er wirklich ist, kannst du dir an dem von C erzeugten Asembler-Programm anschauen. (wenn man was davon versteht )

    Bascom ist ein Basic-Dialekt für den AVR. Da hast du, wie oben geschildert, einige Erleichterungen. Oft ist mit wenigen Zeilen deine Idee in ein Programm umgesetzt. Aber er unterstützt nicht jeden Prozessseor der auf dem Markt ist. (aber das kann sich ja noch ändern [-o< ) Auch da hast du die Möglichkeit, dir das erzeugten Asembler-Programm anschauen.

    Da es (vermutlich) keinen Prozessor gibt, zu dem es keinen C-Compiler gibt, ist die Zahl der Programmierer und die von ihnen geschriebenen Programme riesengross. Es ist sogar so, das es den passenden C-Compiler vor dem Prozessor gibt.
    Das hatte zur Folge das C zu C++ weiter entwickelt wurde. So kann man sein Grundwissen in C weiter benützen und hat auch die Vorteile der moderneren Sprachen.

    Was aber das Problem selbst betrifft.
    Du brauchst erst mal eine Lösung. Die ist doch das Wesendliche. Mit welcher Programm-Sprache du es dann deinem Gerät beibringst, steht doch erst an danach an.
    Wenn du in einem fremden Land Hunger hast, reichen zur Not auch die Hände. Die (Programm-) Sprache ist doch nicht die Lösung, sondern deine Idee und Strategie.

    Soooooo einfach zu Beantworten ist das nicht.
    Ums Lernen kommts du sowiso nicht drumherum !
    Was Besser, Richtig, Falsch usw ist, kannst du erst Beurteilen wenn du es kennen gelernt hast.

    Sonst trifft der Spruch des zu Leute fresst Schei$$e, denn Millionen von Fliegen können sich nicht irren! [-o<
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  8. #8
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    40
    Beiträge
    245
    Glaubenkrieg!!! Und wehe Ihr macht mir Karikaturen über meinen allerliebsten Assembler!!! Dann zünd ich ein paar C Fahnen an und schick das Video an CNN!

    Nein, und Ernst beseite, beides hat vor und nachteile. Ich bin halt ein Anhänger von Assembler, weil wenn was nicht geht, weiß ich genau, dass es mein Fehler im Code sein muß. Und schneller ist es auch, du kannst einfach jeden Takt mitzählen. Und ich mache schon mal Zeitkritische Anwendungen wo ich jeden Takt brauche.
    C ist halt einfach schöner, wenn man mit komplexeren Datentypen arbeitet. Wird schon ein bisschen mühsam, wenn du z.B. einen Temperatursensor per ADC einliest, und den Wert dann umrechnen mußt inklusive Komma - da mußt du halt im Assembler schon einige Tricks anwenden. Also ein Klassischer Fall für C mit netten Bibliotheken. Geht aber auch mit Assembler .

    lg

    Alex

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    "Glaubenkrieg!!! Und wehe Ihr macht mir Karikaturen über meinen allerliebsten Assembler!!! Dann zünd ich ein paar C Fahnen an und schick das Video an CNN!""

    ich glaube, das sollte man erst mal nicht so reinbringen. Es gibt einen christlichen verein "C".

    Castle

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    "Geht aber auch mit Assembler"

    ... der c-code ist ja asm-code....der dann in hex umgewandelt wird.

    Castle

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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