symlink.ch
Wissen Vernetzt - deutsche News für die Welt
 
symlink.ch
FAQ
Mission
Über uns
Richtlinien

Moderation
Einstellungen
Story einsenden

Suchen & Index
Ruhmeshalle
Statistiken
Umfragen

Redaktion
Themen
Partner
Planet

XML | RDF | RSS
PDA | WAP | IRC
Symbar für Opera
Symbar für Mozilla

Freunde
Benutzergruppen
LUG Switzerland
LUG Vorarlberg
LUGen in DE
SIUG
CCCZH
Organisationen
Wilhelm Tux
FSF Europe
Events
LinuxDay Dornbirn
BBA Schweiz
CoSin in Bremgarten AG
VCFe in München
Menschen
maol
Flupp
Ventilator
dawn
gumbo
krümelmonster
XTaran
maradong
tuxedo

 
Sind Assemblerkenntnisse noch nötig?
Veröffentlicht durch maradong am Samstag 12. Juni 2004, 12:05
Aus der lowlevel Abteilung
Programmieren maenuschilt schreibt: "Ein Artikel auf onlamp geht der Frage nach, ob man als Programmierer heute noch Assembler können/lernen muss. Hauptargument dafür sei die Effizienz des Codes genannt. Dagegen spreche der höhere Aufwand beim Programmieren selber und die schlechtere Übersicht über den Code. Der Artikel löste eine interessante Diskussion auf Slashdot aus. Ein alter Programmierer ist der Meinung, dass Assembler vor allem beim Debuggen hilfreich sein kann. Andere meinen bei es sei wichtiger, übersichtlichen Code zu schreiben und zu optimieren was nötig ist."

Roadshow Windows vs. Linux | Druckausgabe | IBM: Patent auf Software-Anzeige des Caps-Lock-Status  >

 

 
symlink.ch Login
Login:

Passwort:

extrahierte Links
  • Slashdot
  • maenuschilt
  • Artikel
  • onlamp
  • Diskussion
  • Mehr zu Programmieren
  • Auch von maradong
  • Diese Diskussion wurde archiviert. Es können keine neuen Kommentare abgegeben werden.
    Microcontroller (Score:1)
    Von DrZimmerman (tbaumgartner BEI swissonline PUNKT ch PUNKT remove) am Saturday 12. June 2004, 12:14 MEW (#1)
    (User #1385 Info)
    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.
    Steuerungen (Score:1)
    Von Ventilator (ventilator auf netz-warm punkt nett) am Saturday 12. June 2004, 12:17 MEW (#2)
    (User #22 Info) gopher://ventilator.netswarm.net
    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!
    Re: Steuerungen (Score:1)
    Von chrisg am Monday 14. June 2004, 12:17 MEW (#28)
    (User #1297 Info)
    (Master-)Seka war aber besser ;-)
    Zum Analysieren von Schädlingen und Rootkits (Score:2, Interessant)
    Von RipClaw am Saturday 12. June 2004, 12:54 MEW (#3)
    (User #1227 Info)
    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.

    Assembler in Ausbildung (Score:1)
    Von maenuschilt (superbaboo_affeschwanz_gmx_punkt_net) am Saturday 12. June 2004, 13:05 MEW (#4)
    (User #1630 Info)
    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)?
    Re: Assembler in Ausbildung (Score:0)
    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.
    Re: Assembler in Ausbildung (Score:1)
    Von cdr am Saturday 12. June 2004, 13:19 MEW (#7)
    (User #1131 Info)
    Ja. Bei einem Elektrotechnik Studium kommt man zumindest an der ETH an Assembler nicht vorbei ...
    Re: Assembler in Ausbildung (Score:1)
    Von stamp am Saturday 12. June 2004, 16:49 MEW (#16)
    (User #501 Info)
    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
    Re: Assembler in Ausbildung (Score:2, Informativ)
    Von c-mon (simon [bei] blubb (punkt) li) am Saturday 12. June 2004, 18:17 MEW (#17)
    (User #1208 Info) http://blubb.li
    An der Uni Zuerich wird nach Angaben eines Bekannten im Elektronikerstudium immer noch ziemlich viel Assembler geschrieben.
    -- PPC: Penguin Powered Computing
    Re: Assembler in Ausbildung (Score:1)
    Von attila am Monday 14. June 2004, 08:41 MEW (#26)
    (User #29 Info)
    Und wie vermeidest du TIK ohne das Studium abzubrechen (gewollt oder ungewollt) ?

    IMHO sollte jeder Programmierer asm koennen, egal ob er hardware nah programmiert oder nicht. Jemand der weiss, was fuer Asm-Code ein Compiler produzieren kann schreibt automatisch C/C++/Pascal/younameit der sich besser optimieren laesst. Und ja, man sieht Hochsprachencode an, ob der Programmierer eine Ahnung von Asm hat oder nicht.

    Re: Assembler in Ausbildung (Score:0)
    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 :)
    Re: Assembler in Ausbildung (Score:2, Informativ)
    Von matzetronic am Saturday 12. June 2004, 13:49 MEW (#10)
    (User #1463 Info)
    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 ;)
    Re: Assembler in Ausbildung (Score:0)
    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
    Re: Assembler in Ausbildung (Score:0)
    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)

    Re: Assembler in Ausbildung (Score:1)
    Von ChaosLoRd am Saturday 12. June 2004, 21:54 MEW (#19)
    (User #1174 Info)
    An der FH Biel (Informatik) haben wir 2 Semester "Technologiegrundlagen: Software". Inhalt: etwas Rechnerarchitektur (Intel), sonst vor allem Assembler.
    Re: Assembler in Ausbildung (Score:2)
    Von db (001@nurfuerspam.de) am Sunday 13. June 2004, 02:02 MEW (#22)
    (User #1177 Info) http://www.bergernet.ch
    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.
    Re: Assembler in Ausbildung (Score:1)
    Von mtthu (m anderskor abegglen uf gmx punkt zeha) am Sunday 13. June 2004, 11:28 MEW (#24)
    (User #1241 Info)
    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
    Assembler (Score:2)
    Von asuzuki am Saturday 12. June 2004, 15:14 MEW (#12)
    (User #422 Info) http://n.ethz.ch/student/asuzuki/
    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.
    Verständnis (Score:1)
    Von tbf am Saturday 12. June 2004, 16:36 MEW (#15)
    (User #21 Info) http://taschenorakel.de/
    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...
    Re: Verständnis (Score:1)
    Von maNic am Saturday 12. June 2004, 22:06 MEW (#20)
    (User #341 Info)

    Da kann ich nur zustimmen. Ich habe mich im Rahmen meines Studiums an der Uni Bern (vor ca. 10 Jahren) intensiv mit Transputer-Assembler beschäftigt. Bei der Liz-Arbeit musste ich FORTRAN-Libraries aus C aufzurufen. Dies war natürlich einfacher mit dem Grundlagenverständnis für Assembler.

    Heute im Berufsalltag ist zwar das Lesen von Business-Spezifikationen bald wichtiger geworden als solche technische Issues, aber gerade jetzt bin ich daran, aus Oracle heraus C aufzurufen. Und wieder hilft es, zu verstehen was da unter der Haube abgeht...

    maNic
    Re: Verständnis (Score:1)
    Von dino (neil@franklin.ch.remove) am Sunday 13. June 2004, 00:40 MEW (#21)
    (User #32 Info) http://neil.franklin.ch/
    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

    Unbedingt notwendig? Jein (Score:1)
    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.
    Optimieren (Score:1)
    Von maxy am Sunday 13. June 2004, 09:21 MEW (#23)
    (User #795 Info)
    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.
    Auf jeden Fall! (Score:1)
    Von mirabile (root@[IPv6:2001:6f8:94d:1::1]) am Sunday 13. June 2004, 18:53 MEW (#25)
    (User #504 Info) http://mirbsd.de/
    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!
    Re: Auf jeden Fall! (Score:1)
    Von attila am Monday 14. June 2004, 08:56 MEW (#27)
    (User #29 Info)
    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

    Re: Auf jeden Fall! (Score:1)
    Von mirabile (root@[IPv6:2001:6f8:94d:1::1]) am Thursday 17. June 2004, 11:03 MEW (#29)
    (User #504 Info) http://mirbsd.de/
    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!

    Linux User Group Schweiz
    Durchsuche symlink.ch:  

    Never be led astray onto the path of virtue.
    trash.net

    Anfang | Story einsenden | ältere Features | alte Umfragen | FAQ | Autoren | Einstellungen