Diese Diskussion wurde archiviert.
Es können keine neuen Kommentare abgegeben werden.
|
|
|
|
|
|
|
|
|
Also in der Microcontroller Programmierung sind Assembler Kenntnisse auch noch heute nötig da man mich Hochsprachen den Microcontroller zwar proggen kann, aber man hat damit sofort ein Performance Problem.
|
|
|
|
|
|
|
|
|
|
|
|
|
Für kleine Steuerchips wird doch auch heute noch Assembler gebraucht?
Nur weil Intel so grauenhafte Chips produziert, heisst das doch nicht, dass Assembler überall so schlecht ist. Ich hab früher mal ein ganz kleines Bisschen Assembler auf dem Motorola 68000 programmiert (Amiga mit DevPac), der war herrlich. Viele Register und kein Eiertanz mit Speicherblöcken. -- Sterben kannst Du nicht, wenn du in aller Leute Köpfe bist!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(Master-)Seka war aber besser ;-)
|
|
|
|
|
|
|
|
|
|
|
|
|
Zum Analysieren von Viren, Würmern, Trojanern und Rootkits ist Assembler nach wie vor unverzichtbar.
Auch bei der Kernelentwicklung sind teilweise immernoch Assemblerkenntnisse nötig.
|
|
|
|
|
|
|
|
|
|
|
|
|
Wird heute eigentlich Assembler gelehrt?
Während meiner Informatik-Lehre ('99-'03) war Assembler kein Thema (.. die heutigen Compiler erzeugen bereits genug optimierten Code, hiess es..)
Wie ist es beim Info-Studium? oder bei den Elektronikern(-studium)?
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 12. June 2004, 13:15 MEW (#5)
|
|
|
|
|
während meiner Elektromonteur lehre 1990-1994 war Assembler auch kein Thema. Wir haben mehr Strom durchgekaut. Inf lehrer gab es nicht, ich habe mir das selbst bei einem bierchen und ner tüte angearbeitet.
|
|
|
|
|
|
|
|
|
|
|
|
|
Ja. Bei einem Elektrotechnik Studium kommt man zumindest an der ETH an Assembler nicht vorbei ...
|
|
|
|
|
|
|
|
|
|
|
|
|
naja. es gibt ein, zwei vorlesungen zu dem thema, aber wenn man nicht tik macht, kommt man da sehr wohl dran vorbei. ihr seid alles kranke kinder --- www.zooomclan.org
|
|
|
|
|
|
|
|
|
|
|
|
|
An der Uni Zuerich wird nach Angaben eines Bekannten im Elektronikerstudium immer noch ziemlich viel Assembler geschrieben. --
PPC: Penguin Powered Computing
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 12. June 2004, 13:28 MEW (#8)
|
|
|
|
|
ETH Inforamtik ist das Stoff des Grundstudiums, also Pflicht, zuwar auf ner RISC (Sparc).
Ist aber wirklich zu empfehlen, allein schon um zu verstehen was ein Compiler macht :)
mann kann das dann natürlich im Fachstudium noch weiter ausbauen ;) Ich nenne da nur mal die Compilierdesign Vorlesung, die dieses Jahre sehr beliebt war :)
|
|
|
|
|
|
|
|
|
|
|
|
|
bei uns im Informatik-Grundstudium sieht der Stoff in Rechnerarchitektur so aus:
- Kombinatorische Schaltnetze
- Boolesche Schaltalgebra
- Sequenzielle Schaltungen
- Computer-Arithmetik
- Codes
also erstmal die Basics. In Zukunft kriegen wir dann noch Assembler und C. Daneben lernen wir Java als Objektorientierte Sprache. Macht für mich Sinn ;)
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 12. June 2004, 14:28 MEW (#11)
|
|
|
|
|
Ich hatte in der Lehre zum Elektronikfacharbeiter U880-Assembler und im Informatikstudium wurde ein Assemblerkurs als Wahlpflichtfach angeboten.
chvt
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 12. June 2004, 15:25 MEW (#14)
|
|
|
|
|
im Informatikstudium der RWTH-Aachen, wird
Assemblerprogrammierung im Semester 2 in
der Vorlesung "Rechnerstrukturen" gelehrt
seit einigen Semestern benutzen sie D.E. Knuth's
MMIX
(http://www-cs-faculty.stanford.edu/~knuth/mmix.html)
(http://www.s-inf.de/#RS)
|
|
|
|
|
|
|
|
|
|
|
|
|
An der FH Biel (Informatik) haben wir 2 Semester "Technologiegrundlagen: Software". Inhalt: etwas Rechnerarchitektur (Intel), sonst vor allem Assembler.
|
|
|
|
|
|
|
|
|
|
|
|
|
In meiner Lehre als Elektroniker lernten wir (in der Firma - nicht in der Schule) Assembler auf uC 80537 (A51) und auf 8085 CPUs.
Da haben wir sogar von Hand auf Papier den Code geschrieben, dann mittels Tabellen Mnemonic -> hexcode übersetzt und anschliessend mit Adress- + Datenhexschaltern und dem Writetaster das Programm in den Ram gecodet, und am Schluss dann gestartet.
Wehe jemand hat den Hauptschalter des Lehrwerkstatt gedreht...
Aber so hab ich gelernt, wie so ein Compi wirklich funktioniert.
|
|
|
|
|
|
|
|
|
|
|
|
|
Bei den Elektronikern ist Assembler nach wie vor ein Thema. Wir werden voraussichtlich im vierten Lehrjahr in der Schule mit Assembler konfrontiert, je nach Firma kann das aber auch schon im ersten oder zweiten Lehrjahr passieren. An der Teil-Lehrabschlusprüfung (geiles Wort...) gibt es noch immer Bonuspunkte, wenn man seinen uC in Assembler programmiert. (.. die heutigen Compiler erzeugen bereits genug optimierten Code, hiess es..)
Damit haben deine Informatiklehrer sogar recht. Ich habe aber die Erfahrung machen müssen, dass man ohne Assemblerkenntnisse gerade bei Mikrocontrollern eingeschränkt ist, weil für die Nutzung spezieller Periferie, die auf dem Controller integriert ist, nicht immer vernünftige Header zur Verfügung stehen. ----------------
Eat, Drink, Drum
|
|
|
|
|
|
|
|
|
|
|
|
|
Also ich finde Assemblerkenntnisse oder zumindest Kenntnisse in systemnaher Programmierung (z.B. mit C) unverzichtbar für das vertiefte Verständnis von Rechnerarchitekturen, Compilern etc.
Im Informatik-Studium an der ETH gibt es im 3. Semester die Vorlesung "Systemprogrammierung", dort geht es um C und Assembler, auf der SPARC (RISC) Plattform. Konzepte wie der Stack, Calling Conventions, Traps (Interrupts) werden erklärt und teilweise auch implementiert.
Im Fachstudium (ab 5. Semester) gibt es das Kernfach "Systemsoftware" wo nochmals lowlevel-Sachen angeschaut werden, z.B. was ein Betriebsystem heutzutage so machen muss (Paging, Multitasking, ...) und was Laufzeitumgebungen so bieten und wie sie es implementieren (z.B. Java VM, Garbage Collection, Exception Handling, ...)
Ich bin jedenfalls froh, von diesen Sachen schon mal gehört zu haben ;-) Ausserdem ist es manchmal ganz spannend zu sehen, wieviel mehr Performance man aus Programmen rausholen kann, wenn man die unterliegenden Konzepte der Plattform (z.B. Caching, Paging) und generell low-level Optimierungsschemata kennt.
|
|
|
|
|
|
|
|
|
|
|
|
|
Assembler hat meiner Meinung nach zwei Rechtfertigungen: a) Debuggen, vor allem bei Compiler-Bugs b) Verständnis. "Verständnis"? Ja, "Verständnis". Habe die Erfahrung gemacht, dass Leute, die mit Sprachen wie Java aufgezogen wurden, arge Probleme haben, Datenstrukturen und Ihre Repräsentation im Arbeitsspeicher, sowie Computerarchitektur im Allgemeinen zu verstehen. Probleme, die mit einer gesunden Portion Assembler-Praxis (sei es x86, MIPS oder gar Java-Byte-Code bzw. CIL) lächerlich erscheinen. -- Addicted by code poetry...
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
Leute, die mit Sprachen wie Java aufgezogen wurden, arge Probleme haben, Datenstrukturen und Ihre Repräsentation im Arbeitsspeicher .. zu verstehen
Ich kenn zuviele C Programmierer, die "so so la la" mit Pointern umgehen koennen. Irgendwie haben sie sich ein Halb-Verstaendnis zurechtgebroeselt, das meistens funktioniert, und ab und zu daneben geht. Alles Leute die kein Assembler koennen.
Jeder (ex-)Assembler Programierer den ich kenn, der C macht, hat null Probleme damit, weil er weiss, was ein Adressregister ist. Und die Pointer als solche richtig versteht. Richtig = so wie es der Prozessor macht. --
hardware runs the world, software controls the hardware,
code generates the software, have you coded today
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 12. June 2004, 19:57 MEW (#18)
|
|
|
|
|
Unbedingt notwendig? Nein nicht unbedingt. Wenn jemand, so wie ich, für Embedded Systeme programmiert für den ist Asm allerdings unverzichtbar, ja es gibt C und auch ein PIC lässt sich in C programmieren - allerdings muss man wissen was für einen Asm Code der C-Compiler erzeugt.
Zusätzliches Wissen ist immer hilfreich, ich versuche immer aus möglichst vielen verschiedenen Bereichen der Programmierung mein Wissen zu beziehen, nur so steigt die Erfahrung und man lernt bessere Möglichkeiten ein Problem zu lösen.
|
|
|
|
|
|
|
|
|
|
|
|
|
Wenn man ein Programm in C schneller machen will ist es schon wichtig zu wissen dass (i/64) schneller ist als (i/60). Assembler zwingt einem sich mit der Maschine zu befassen.
|
|
|
|
|
|
|
|
|
|
|
|
|
Vor einiger Zeit kam auf /. sogar einer, der meinte,
Assembly als erste Programmiersprache sei sinnvoll.
Und ich sage Euch: der Mann hat Recht!
Zum Selbstudium eignet sich das zwar nur bedingt,
aber ohne Assembly-Kenntnisse kann man sich nicht
mit der Maschine in einem Maß vertraut machen, das
zur Programmierung (Achtung: nicht Anwendungsentwik-
klung) nötig ist.
Von embedded systems, Bootloadern und sonstigen
Randeinsatzbereichen (auch die Handoptimierung
von Code, die nicht mehr nötig ist) abgesehen,
helfen Assembly-Kenntnisse auch beim Debuggen.
Ich würde gerne Leuten asm als erste Sprache nahe-
legen, verwende in der Praxis ob der Beschränktheit
der Leute meist Turbo Pascal 6.0 - da hat man das
DOS-Environment, strukturierte Programmierung bis
zum Umkippen, und sogar OOP im Anschluß - und kann,
wenn man sich mit den Leuten IRL trifft, sogar
eine kleine Einheit Inline-(B)ASM einflicken.
-- Ich bin BSDler, ich darf das!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Als jemand, der selbst mit Assembler angefangen hat, muss ich sagen, dass du halb recht hast, halb nicht. Assembler verlangt einiges an abstraktem Denkvermoegen ab, welches aber gerade Programmieranfaengern (noch) fehlt. Sinnvoller ist es mit einer prozeduralen Sprache zu beginnen und immer wieder zu zeigen, wie dass nachher auf der Maschine aussieht. Assembler sollte man, IMHO als Einschub machen, irgendwo so um den Pointer herum.
Apropos Anfaengersprachen, IMHO ist Pascal nachwievor ungeschlagen, wenn es darum geht jemandem Programmieren beizubringen. Java ist viel zu umstaendlich und man muss erst begreiffen, was OO heisst (nicht ganz einfach fuer jemanden der noch nie programmiert hat). C++ ist sprachlich zu kompliziert, wenn man ueber procedural hinausgehen will. C ist was, wenn man schon halbwegs sauber programmieren kann (erlaubt zuviele hacks und unschoenheiten). Allerdings wuerde ich heutzutage nicht mehr BP/TP nehmen sondern fpc
|
|
|
|
|
|
|
|
|
|
|
|
|
Im ersten Teil hast Du klar (bei den meisten
Trainees) Recht, und in der Praxis handhabe ich
das auch so.
fpc würde ich nicht nehmen, schon alleine weil es
unportabel ist. In MirOS ist GPC (GNU Pascal) in-
tegriert, was auch recht gut funktioniert und mit
TP ziemlich kompatibel ist (ger|chtehalber besser
als fpc), aber wenn es um das Programmieren-UND-
die-Maschine-kennenlernen (Pascal/ASM parallel in
Einschüben, gemäsz Deinem Punkt 1) geht, ist das
DOS-Environment ungeschlagen.
-- Ich bin BSDler, ich darf das!
|
|
|
|
|
|