Tut mir leid dass ich dieses Thema schon wieder aufwühle (habe schon gesehen dass die Suche voll damit ist und mir die Ergebnisse auch durchgelesen -> zumindest bis sie vom Thema abgekommen sind). Es geht darum ob es sinnvoller ist C oder Assemlber zu lernen. Bisher habe ich ca. 1Woche Zeit zwischendurch Assembler überflogen und ein wenig Programmiert. Mir geht es hier nicht nur um Hobbybedarf, da ich momentan bei der Jobsuche bin und ggf. Bereiche in denen Programmiert wird mit einfließen. Kurz nochmal die Frage: Ich habe bereits ein wenig mit Assembler gearbeitet, und frage mich ob es sinnvoll währe (besonders für die Zukunft) weiter Assembler zu lernen bis ich es ordentlich kann und dann auf C zu wechseln oder jetzt schon Assembler zur Seite legen und C lernen.
die Frage ist für welche µC du überhaupt programmierst? Auf einem Tiny arbeite ich gerne mit ASM wenn es aber eh ein grosser AtXmega wird, dann verwende ich C. Für Optimierungen ist es aber wichtig ASM zu können, damit man dem Compiler über die Schultern schauen kann.
Momentan arbeite ich mit ATtiny und ATMega. Ich weiß nicht womit ich Arbeiten werde, sollte ich in meinem Beruf damit in Berührung kommen.
Hi, also ich denke wenn es darum geht das es auch im Berufleben als Vorteil gelten soll, dann würde ich schon "vernünftig" Assembler lernen und danach dann auf C wechseln und dort richtig ranklotzen. Das Programme komplett in Assembler geschrieben werden kommt auch im µC sektor immer seltener vor. Aber ausgestorben ist es nicht... Gerade im Professionellen Umfeld aber ist es wichtig das Programme effizient sind, sowohl hinsichtlich Laufzeit(timing) als auch Platz. Zwar sind einige C Compiler mittlerweile so gut das man selbst nicht "kleiner" in Assembler schreiben kann, aber alles wo es im Timing auf einzelne Prozessortakte ankommt geht nicht ohne eingebettete Assemblerabschnitte. Zudem sollte man als µC Programmierer auch den vom Compiler erzeugten Code lesen können, alleine schon um beurteilen zu können das der sich nicht irgendwo "verschluckt" hat. Und natürlich um Fehlfunktionen auf die Schliche zu kommen. Wurde ja auch schon oben geschrieben. Daher ist Assembler im Professionellen Umfeld immer noch relevant. Was man nicht mehr unbedingt braucht ist die so excelente Beherschung das man jeden Programmierkniff/Trick kennt - wie es vor 20Jahren war als jedes Byte noch richtig teuer war. Bei C ist sowas heute natürlich absolut relevant, aber in ASM... Aber ordentlich verstehen um Code gut zu lesen oder auch mal ein paar Zeilen einbetten zu können muss sein. Wobei es weniger darum geht einen Prozessorspezifischen Dialekt perfekt zu beherschen als die Grundidee zu verstehen und sich schnell in eine andere Variante einarbeiten zu können. Gruß Carsten
> Mir geht es hier nicht nur um Hobbybedarf, da ich momentan bei der > Jobsuche bin und ggf. Beruflich wird C programmiert und nur C und nichts anderes als C. Allenfalls in extrem seltenen Faellen wird vielleicht mal irgendwo ein Stueck Assembler drin sein. Olaf
Olaf schrieb: > Beruflich wird C programmiert und nur C und nichts anderes als C. Allerdings ist es sehr von Vorteil, wenn bei Problemen auch ein vom compiler erzeugtes Assemblerlisting gelesen, verstanden und interpretiert werden kann... ;-)
Einige hier werden mich jetzt vielleicht steinigen, aber heutzutage kommst Du in einer Durchschnittsfirma die selber Firmware für Mikrocontroller entwickelt gänzlich mit C durch und kannst Assembler ohne schlechtes Gewissen vergessen. Assembler ist meiner Meinung nach nur noch in gewissen Nischen interessant z.B. wenn Du alte Firmware warten musst, schlechte Compiler verwendest und den erzeugten Code überprüfen musst oder sehr einfache aber hochstückzahlige Billigprodukte entwickelst wo es auf jeden Cent ankommt (z.B. "Chinaspielzeug"). Bei sehr komplexen Produkten geht der Trend bereits stark in Richtung embedded PC's und dann wird vorallem mit C++ programmiert.
Hi Obwohl ich mit C nix im Sinn hab, bin ich der Meinung, wenn du beruflich programmierst, würd ich C lernen. Assembler, zumal du ja schon ein wenig "Erfahrung" damit sammeln konntest, ist für einen Programmierer hinterher nicht das große Problem. Solltest du jemals Bedarf daran haben, ist dir der Weg zu Assembler ja nicht verbaut. Aber natürlich favorisiere ich nach wie vor Assembler, da damit direkt das Verständnis für die Funktion eines µC übermittelt wird. Dies ist bei einer Hochsprache nicht unbedingt gegeben. Sagen wir mal so, mit Assembler bist du auf der persönlichen "Du-", mit einer Hochsprache auf der distanzierten "Sie-Ebene". Gesteckte Ziele kannst du in jeder Ebene erreichen. Gruß oldmax
Hmm ... Wenn ich das richtig verstehe wird von einem empfohlen Assemlber zu lernen bis man es einigermaßen kann und dann auf C zu gehen um später Assembler in C einbinden zu können. Meine befürchtung hierbei ist das bis ich Assembler einbinden muss das schon wieder vergessen habe. Andererseits werde ich mich dann wohl schneller wieder reinfinden. Person 2 empfiehlt Assembler komplett wech zu lassen. Hierbei Frage ich mich ob man dann auch lernt wie so ein µC überhaupt funktioniert, und ob es den wichtig ist das zu wissen. Hinzu kommt das ich mal Basic ein wenig (2Jjahre) rumgespielt habe und ich fast befürchte das mit C durcheinander zu bekommen. Fazit: Scheint als sollte ich Assembler erstmal ignorieren und gleich mit C anfangen. Hoffe das ich mit diesem Schritt keinen Fehler mache. Warte noch auf weitere Antworten, villeicht hat ja noch jemand Gründe für C oder Assembler b.z.w. dagegen. Schonmal Vielen Dank für die bisherigen sowie alle noch kommenden Antworten
Assembler ist gut, um ein Verständnis für den Prozessor und die technische Funktionsweise eines Computerprogramms zu bekommen. Am Anfang lohnt es sich also sehr, damit zu üben. Es unterstützt einem dann auch sehr beim Verständnis von C, insbesondere die ganze Pointergeschichte, aber auch Arrays, Speicherallokation, effizientes Programmieren etc. Produktiv wird man kaum mit Assembler arbeiten, da es einfach zu aufwendig und zu fehleranfällig ist. Deshalb lohnt es sich, nach einigen Wochen Assembler, C zu lernen. C ist die mit Abstand wichtigste Sprache im Mikrocontrollerbereich.
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.