Assembler: Für was/aktuell? Lernen wo, wie?
-
Buch:
Trutz Eyke Podschun, Das Assembler-Buch, Addison-Wesley
http://www.addison-wesley.de/9783827315137.html
http://www.addison-wesley.de/PDF9783827319296.html (e-book)
-
es kommt immer darauf an, was du programmieren möchtest. in der regel ist es so nicht notwendig, da du alles mit c oder meinetwegen auch c++ machen kannst. der hauptvorteil an assembler ist einfach, daß es schneller läuft, weshalb selbiger (-s?) z.b. in der spieleprogrammierung eingesetzt wird.
das mmn schönste an assembler ist einfach, daß du quasi nebenbei lernst, wie die cpu bzw. der computer intern funktioniert.falls du ne bücherei in deiner nähe hast, guck doch einfach mal in die diversen bücher zu assembler rein, ansonsten würde ich dir einfach assembler - maschinennahes programmieren von anfang an empfehlen. kostet 12€ und enthält den 8086-befehlssatz, was fürs erste völlig ausreichend ist.
-
Ein ziemlich aktuelles Buch ist diese hier:
-
Das wird ja immer besser hier...
Sowohl Podschun als auch Hyde sind eher sinnlose Lektüre zum Asm-Einstieg. Vor allem Hyde, er geht sowieso nicht sonderlich in die Tiefe, bietet aber stattdessen an, eine neue Grammatik zu lernen, die nix mit Asm zu tun hat. Beim Podschun waren eher die beigelegten .asm files auf dem Datenträger spannend, aber wo ist der oder sind die denn beim E-Book? Die eher interessanteren Feinheiten im Text gehen in einem Art C-Schlauch-Strahl voller abgehobenem Gesülze ziemlich unter.
Wenn man eher bei 0 anfängt, dann braucht man eine Art Aufbauenden roten Faden. Den gibt es aber in den Nachschlagebüchern
http://www.amazon.de/Assembler-Maschinennahes-Programmieren-Anfang-Windows-Programmierung/dp/3499612240/
und
http://www.amazon.de/Assembler-Grundlagen-Programmierung-mitp-Professional/dp/3826614690/
und
http://www.amazon.de/Assembler-GE-PACKT-Ge-packt-Joachim-Rohde/dp/3826617568/eher auch nicht wirklich.
Das heißt, man ist (erstmal) gezwungen, sich diesen roten Aufbauplan selbst zu erstellen, mit Hilfe von Disassemblern und einfachen Programmen oder kleinen Assemblersoucecodes und eben den oben genannten Büchern.Rein lernpraktisch, denke ich mal, sind Assemblergrundlagen viel schneller gelernt als Hochsprachengeschichten, also kein Grund darauf zu verzichten, auch wenn gerade (wie immer) kein "Asm in 21 Tagen" Kurs verfügbar ist.
-
also übungsaufgaben erhält man sonst im netz und solange man nicht in der lage ist, komplizierteste mathematische berechnungen einzuprogrammieren, braucht man mmn mit weitergehender programmierung gar nicht anzufangen.
-
HansKlaus schrieb:
also übungsaufgaben erhält man sonst im netz und solange man nicht in der lage ist, komplizierteste mathematische berechnungen einzuprogrammieren, braucht man mmn mit weitergehender programmierung gar nicht anzufangen.
Kannst du das mal etwas genauer ausführen? Folgt man dieser Logik oberflächlich, dann kann man nur zu dem Schluß kommen, das weitergehende Programmierung nur für Meistermathematiker Sinn macht. Aber was meinst du mit "weitergehender programmierung"?
Komplizierteste mathematische Berechnungen programmieren?
-
nachfeuer,
was ist eigentlich aus deinem interaktiven Einstiegskurs geworden? Bin nämlich immer noch nicht erleuchte hinsichtlich des Begriffes „Multipass“ oder „Mutlipass-Register“!
-
mit weitergehender programmierung meinte ich beispielsweise gui-programmierung, wie sie in dem von mir genannten buch anhand von windows angerissen wird, oder auch hardwarenahe programmierung.
meistermathematiker mußt du nicht sein, aber summen-, potenz-, bruch-, wurzel- und vektorrechnung sind schon ganz gut, und programme, die nach eingabe einer funktion die drei ableitungen, die stammfunktion und bei bedarf die steigung, die krümmung und das integral (was nach landläufiger ansicht schon meitermathematik ist) ausgeben, tragen sehr gut zur "hirnaktivierung" bei und werden immer gebraucht, sofern man nicht grad nen texteditor programmieren will. es besteht natürlich die möglichkeit, alles in klickibunti zu machen, aber dafür ist visual basic dann besser geeignet.
-
HansKlaus,
dann zeig doch bitte mal schnell den Code, der Symbolisch integriert oder differenziert.
Ist ja wirklich trivial - selbst mein uralt CAS-Taschenrechner findet, wie natürlich zu erwarten, die Stammfunktionen beliebiger Funktionen.
-
es geht doch nicht darum, irgendwelche rechenmaschinen neu zu erfinden, sondern darum, das programmieren zu lernen. für irgendwelche algorithmen machst du nachher copy & paste bzw wandelst den pseudo-code dann in assemblersprache, c, oder was auch immer, um, sofern du es denn schon aufwendig machen willst und nicht einfach irgendwelche funktionsbibliotheken verwendest. wenn du von null mit assembler anfangen willst, ist es in meinen augen das beste, erstmal nur zu wissen, was man machen muß, damit zeichenketten von der tastatur eingelesen werden und was man machen muß, damit irgendwelche zeichenketten auf dem bildschirm ausgegeben werden. dann kommt es dran, diese zeichenketten in zahlenwerte umzuwandeln und zahlenwerte in zeichenketten umzuwandeln. danach kommt dann die obengenannte mathematik dran und dann kann man schon behaupten, man könne die grundzüge von assembler.
wenn einen diese dinge nicht interessieren, wäre visual basic mit sql einfach besser, da man damit supergeile programme bauen kann, ohne großartig das rad neu erfinden oder son bißchen unter die haube gucken zu müssen.
-
Was hat den bitte schon Assembler mit CASs zu tun? Genau - garnichts: so was frickelt man nicht in Assembler zusammen. Auch Ein- und Ausgabe sind nicht sonderlich erhellend, wenn man sich nicht mit der Spezifischen Hardware (datasheets und co.) auseinandersetzen will. Für Anfänger geht es Hauptsächlich darum den Umgang mit Pointer (direkt/indirekte Adressierung), Register, Flags und dem Stack zu erlernen. Die meisten fangen daher an, mit irgendwelchen Schleifenkonstrukten herum zu spielen, in denen irgendwas berechnet und/oder Ein- oder Ausgegeben wird. Um das zu bewerkstelligen, muss man kein CAS &co implementieren können!
-
Wenn man eher bei 0 anfängt, dann braucht man eine Art Aufbauenden roten Faden. Den gibt es aber in den Nachschlagebüchern
http://www.amazon.de/Assembler-Maschinennahes-Programmieren-Anfang-Windows-Programmierung/dp/3499612240/
und
http://www.amazon.de/Assembler-Grundlagen-Programmierung-mitp-Professional/dp/3826614690/
und
http://www.amazon.de/Assembler-GE-PACKT-Ge-packt-Joachim-Rohde/dp/3826617568/Das erste hab ich, dass liest sich aber wie Mist (Muss man ertragen). Nach dem Inhaltsverzeichnis scheinen mir die letzten beiden Bücher Themen an zuschneiden, welche das erste Buch nicht tut (Falls falsch bitte korrigieren^^).
Der größte Mist ist, warum zeigen die alle Beispiele unter DOS? WinAPI gehört ja da rein, aber DOS ist schon längst tot und dabei mit ner DOSBox parallel rumzuspielen ist ziemlich lästig (Finde ich jedenfalls).
Gibt es eig. auch Bücher wo Assembler anhand von AT&T Syntax (Von mir aus auch Intel), glibc und mit gcc Tools gezeigt wird? glibc wäre auch ein guter DOS ersatz, da das auch für windoof portiert ist :D.
Mfg HeavyMetalGeek.
-
Nur Masochisten quaelen sich heute noch mit Assembler rum. Lass das lieber die paar Spezialisten bei Grosskonzernen machen, die sich damit abgeben MUESSEN.
Letztlich lernt man dabei doch fast nichts, da man das Grundprinzip in einer Stunde verstanden hat und sich dann nur noch mit Mikrodetails wie "Welches Bit muss in welchem Register stehen; In Welchem Register steht der Rueckgabewert" etc. rumplagt. Weder sehr erleuchtend noch spannend.
-
-Realist- schrieb:
Nur Masochisten quaelen sich heute noch mit Assembler rum. Lass das lieber die paar Spezialisten bei Grosskonzernen machen, die sich damit abgeben MUESSEN.
Letztlich lernt man dabei doch fast nichts, da man das Grundprinzip in einer Stunde verstanden hat und sich dann nur noch mit Mikrodetails wie "Welches Bit muss in welchem Register stehen; In Welchem Register steht der Rueckgabewert" etc. rumplagt. Weder sehr erleuchtend noch spannend.
jo, wenn ich mir nur eine Stunde zum Assemblerlernen Zeit gelassen hätte, würde ich ganz genauso daherschreiben.
@Headbängerheini:
http://download.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf
http://asm.sourceforge.net//resources.html
-
also ich habe jetzt nicht wirklich viel länger (naja vielleicht 3std) für assembler gebraucht. was wirklich zeit frißt, ist eben das "programmieren", sprich die algorithmen und deren umsetzung. ob man jetzt direkt mit assembler anfangen soll, weiß ich nicht, aber als man den computer entwickelt hat, gab es ja auch nur assembler und man war gezwungen, es zu lernen.
ob jetzt "call schreibe_string" in assembler oder "puts()" in c benutzt, ist dabei mmn scheißegal.
-
HansKlaus schrieb:
also ich habe jetzt nicht wirklich viel länger (naja vielleicht 3std) für assembler gebraucht. was wirklich zeit frißt, ist eben das "programmieren", sprich die algorithmen und deren umsetzung. ob man jetzt direkt mit assembler anfangen soll, weiß ich nicht, aber als man den computer entwickelt hat, gab es ja auch nur assembler und man war gezwungen, es zu lernen.
ob jetzt "call schreibe_string" in assembler oder "puts()" in c benutzt, ist dabei mmn scheißegal.Stell Dir mal vor in einer Grossbank werden täglich - sagen wir 40 Millionen Datenbankzugriffe (und das ist eher sehr wenig) gemacht. Man kann sich dann recht leicht vorstellen, wie sich jeder unnötige Zyklus der CPU geradezu potenziert. Bei solchen Programmen, die einerseits "transaktionssicher" - andererseits bei jeder Transaktion aufgerufen werden, ist absolute Effizienz das erste Gebot. Man kann zwar mit gewissen Hochsprachen sehr effizient programmieren - C++ oder Java und sonst so überladenen Programmiersprachen haben dort aber nichts verloren...
-
Also ich hab zwar selber nix in dem Sektor zu tun aber ich hatte schon die ein oder andere Unterhaltung mit Jemandem der hat und ich kann dir versichern dass solche Bankensoftware nicht in Assembler geschrieben wird
-
dot schrieb:
Also ich hab zwar selber nix in dem Sektor zu tun aber ich hatte schon die ein oder andere Unterhaltung mit Jemandem der hat und ich kann dir versichern dass solche Bankensoftware nicht in Assembler geschrieben wird
Naja... hier zwei Links, einer zum Verständinis - der andere für einen Kurs
http://www.mainframes.com/assembler.htm
http://www.com-software.de/index.php?id=359&L=0Ich mache jetzt ein wenig Werbung für die Konkurrenz - aber warum nicht.. :p
-
HansKlaus schrieb:
also ich habe jetzt nicht wirklich viel länger (naja vielleicht 3std) für assembler gebraucht.
Echt? Toll. Könntest du schnell mal aufzeigen, wie du das gemacht hast bzw. wie es funktioniert, innerhalb von 3 Stunden Assembler zu lernen - inklusive complexen Taschenrechnersimulator mit allem Pipapo erstellen. Hier schauen nämlich viele Einsteiger rein und wir könnten sie einfach auf dein elaboriertes Lernkonzept verweisen und hoffen, das die absurdesten Sprüche und dämlichsten Behauptungen hier im Asm-Forum etwas weniger werden.
( http://webster.cs.ucr.edu/AsmTools/HLA/HLADoc/HTMLDoc/WhatIsHLA.html )
-
nachtfeuer schrieb:
Echt? Toll. Könntest du schnell mal aufzeigen, wie du das gemacht hast bzw. wie es funktioniert, innerhalb von 3 Stunden Assembler zu lernen - inklusive complexen Taschenrechnersimulator mit allem Pipapo erstellen.
Gehört das dazu? Taschenrechner?
Die 3 Stunden sind Angeberei, aber im Grunde stimmt das doch. Jeder sollte sich IMO die Grundzüge von Assembler aneignen, damit man die Maschine halbwegs versteht und Assembler lesen kann, und dann wieder was anderes machen!