mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler oder C


Autor: Michael D. (etzen_michi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael D. (etzen_michi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Momentan arbeite ich mit ATtiny und ATMega. Ich weiß nicht womit ich 
Arbeiten werde, sollte ich in meinem Beruf damit in Berührung kommen.

Autor: Carsten Sch. (dg3ycs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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... ;-)

Autor: Johnny B. (johnnyb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael D. (etzen_michi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: lol (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.