Nachhilfe
-
Ich bin leider überhaupt nicht in der Ecke der Programmiersprachen zu Hause.
Ich muss mich aber beruflich mit Themen von Kollegen oder Geschäftspartnern auseinander setzen, will aber auch nicht doof da stehen.
Ich will es wenigstens oberflächlich verstehen.
Kann mir jemand zum Thema C bzw. Assembler helfen?Kann jemand automatisch C programmieren wenn er Assembler kann?
Und wo ist der Unterschied bei der Programmierung von 8 bzw. 16 bit Microcontroller?Danke für die Unterstützung.
Viele Grüße
Andi
-
Zu Detailfragen wirst du hier sicher vernünftige Antworten erhalten, aber einen kompletten Anfängerkurs wird wohl keiner mit dir durchziehen wollen. Das musst du verstehen, der Zeitaufwand wäre enorm. Fang doch am besten an zu lernen, indem du dir ein Buch kaufst oder wenigstens ein Tutorial durcharbeitest.
Und nein, man kann nicht automatisch C, wenn man Assembler gelernt hat.
-
Hallo Matze.
danke für den Tip und die Antwort. Ich versuche seit einigen Tagen zumindest die Strukturen und die Aufgaben zu verstehen.
Hast du vielleicht ein Tip wo ich etwas zu den allgemeinen Strukturen und möglichen Anwendungen finde. Ein Buchtip, der eher die "Oberflächen" beschreibt als die Programmierung. Sozusagen Einsatzmöglichkeiten.
Oder kann man mit Assembler oder C alle Aufgaben lösen?Und es werden Funktechnologien eingesetz. Ich höre öfter wireless mbus oder zigbee. Wo kommen die Bereiche zusammen?
Danke für die Hilfe
-
Mit Assembler hast du mehr möglichkeiten da du direkt die Hardware ansprechen kannst.
Z.b. der Befehl CPUID damit kann man das Prozessor Stepping auslesen (und noch einige andere Sachen siehe: http://de.wikipedia.org/wiki/CPUID , http://www.sandpile.org/x86/cpuid.htm ).
In C geht das soweit ich weiss wenn nur mit Inline Assembler mir ist zumindest keine Funktion aus der C Standard Bibliothek bekannt womit man z.b. das Prozessor Stepping auslesen kann.
Assembler wird auch zur Optimierung benutzt, wenn du z.b. eine bestimmte Funktion in C geschrieben hast und diese zu langsam ist und sich mit reinem C nichts mehr optimieren lässt dann wäre ein versuch mit Assembler sinnvoll.(Schlechter Assembler Code wird wohl trotzdem langsamer als guter C Code
)
Also Assembler nicht immer gleich schnellerer Code.
-
optimierung schrieb:
Mit Assembler hast du mehr möglichkeiten da du direkt die Hardware ansprechen kannst....
Das geht allerdings unter Windows und Linux nicht von der Anwenderebene aus, sondern nur, wenn du einen Gerätetreiber schreibst. Die Assemblerbefehle für den direkten HW Zugriff sind nämlich priviligiert und dürfen nur im Kernel modus ausgeführt werden.
-
Lies dich durch die Einsteigertutorials auf der Seite
http://www.mikrocontroller.net/ dann kannst du schon einiges auf die Schnelle Lernen.Für tieferes Verständnis ist aber Standardbuch und Nachschlagetext sehr praktisch und auch wichtig. Möglichst bei einem Text bleiben, diesen Ergänzen, quasi als Grundbaustein/Gerüst des Wissens und als Haus für zusätzliches Wissen, etwa aus dem Internet.
Für schnelle Antworten auf Fragen das Internet mit Stichworten nach Texten absuchen, z.B. auf google sowas wie
mikroprozessor wiki oder Programmiersprachen wiki o.ä eingeben, ist schon mal ein guter Anfang, oder der ein oder andere Artikel wie:
http://www.bernd-leitenberger.de/computer-geschichte-artikel.shtml
lesen.Learning by doing: Entwicklerkit(mikrocontroller für Einsteiger besorgen, siehe auch (z.B.)
http://www.mikrocontroller.net/topic/213180#new
http://www.mikrocontroller.net/forum/hfheftiges Wikipediabenutzen auch möglich:
http://de.wikipedia.org/wiki/Oktalsystem
http://de.wikipedia.org/wiki/Hardware-Plattform
usw.
-
andi2803 schrieb:
Hast du vielleicht ein Tip wo ich etwas zu den allgemeinen Strukturen und möglichen Anwendungen finde. Ein Buchtip, der eher die "Oberflächen" beschreibt als die Programmierung. Sozusagen Einsatzmöglichkeiten.
Oder kann man mit Assembler oder C alle Aufgaben lösen?Ein Versuch, C und Assembler kurz und knapp oberflaechlich zu beschreiben:
Assembler ist grob gesagt mehr oder weniger eine direkte 1:1 Darstellung von Maschinensprache in menschenlesbarer Form. Maschinensprache ist das bunte Durcheinander von Bits und Bytes, das Prozessoren als Befehle verarbeiten koennen. Dadurch koennen prinzipiell alle Moeglichkeiten und Befehle eines Prozessors direkt komplett verwendet werden. Da allerdings jede Prozessorenfamilie (x86, ARM, MIPS, AVR, etc.) einen anderen Aufbau, Satz von Befehlen und auch anderen Maschinencode verwendet, sieht die Assemblersprache entsprechend auch fuer jede dieser Familie anders aus.
C ist eine Programmiersprache, die gegenueber Assembler staerker vom Maschinencode abstrahiert (="Hochsprache"). Das erleichtert zum einen die Arbeit des Programmierers mit intuitiveren und idR. uebersichtlicheren syntaktiktischen Konstrukten, zum Anderen ist es so theoretisch moeglich, aus dem selben Quellcode ausfuehrbare Programme (also Maschinencode) fuer ganz unterschiedliche Prozessorfamilien zu erzeugen. (Praktisch werden dazu oft kleine Anpassungen am Quellcode benoetigt wegen Unterschieden in peripherer Hardware, den bei der Uebersetzung benutzten Bibliotheken, Werkzeugen, o.Ae.).
andi2803 schrieb:
Und es werden Funktechnologien eingesetz. Ich höre öfter wireless mbus oder zigbee. Wo kommen die Bereiche zusammen?
Wo die abstrakten Bereiche "Funktechnologien" und "Programmierung" zusammenkommen, muss dir hoffentlich niemand erklaeren. ProTip: Datenverbindungen ueber funk werden oft von programmierbaren Prozessoren kontrolliert.
Bei zigbee und wireless mbus handelt es sich um Standards fuer Drahtlose Datenverbindungen.
1.eres ist vielleicht ganz grob mit bluetooth vergleichbar (hoffe, das ist ein Begriff)
2.eres wird idR. zum Uebertragen von Sensordaten wie Wasserzaehlern o.Ae. verwendet.
Fuer mehr Details ist die Wikipedia dein Freund.
-
Heißt das, dass C als Programmiersprache auf Assebler als Maschinensprache "aufsetzen kann" ? Sind die irgendwie verküpfbar, gemeinsam nutzbar?
Und ist total witzig, es geht wirklich um Messtechnik und die Auswertung von Daten
in der Zählerindustrie.Ich hab keine Zeit für einen gescheiten Kurs. daher danke für die tips. Lieratur check ich am WE. Ich klopp mir das in die Birne sogut es geht. Will denk ich irgendwann in eine andere Richtung. Spile mit dem Gdanken zu studieren. Als Software-Entwickler kann man richtig gutes Geld verdienen.
-
Hallo ja man kann C mit Assembler "verknüpfen".
#include <stdio> int main() // Start vom Hauptprogramm { int var = 3; // Die Variable var bekommt den Wert 3 printf("%d",var); // Gibt 3 aus _asm // Anfang der Inline Assembler routine { mov eax,8 // Das EAX Register bekommt den Wert 8 mov var,eax // Die Variable var bekommt den Wert der im EAX // Register steht also in diesem Fall 8 } printf("%d",var); // Gibt 8 aus return 0; // Programm wird beendet }
-
Danke. ICh glaub ich schnall es langsam.
Aber mal kurz was anderes. Kann ich echt als "normaler" SW-Entwickler 65.000 € verdienen?
_
-
65000 € ich nehme mal an du meinst im Jahr. ^^
Vielleicht wenn du selbst etwas ganz tolles entwickelst was es noch nicht gibt oder so. Dann verdienst du vielleicht sogar 65000 € pro Monat.
Entwickel was um im Weltall Aliens aufzuspühren und verkauf es der NASA die würden sich freuen. (=Ok Spass beiseite.
65000€ im Jahr ist denke ich wohl schon möglich wenn man gut ist. Was verdient eigentlich so ein Dr. im Monat Durschnittlich ?
-
Mit dem Weihnachtsgeld zusammen lieg ich über diesen Betrag.
-
Wir suchen gerade auf jeden Fall gute Leute, und wenn ein "normaler" schon 65 kriegt, was dann einer mit Verantwortung? Vielleicht kennt Ihr ja jemand?