Assembler macht einfach Spaß, nirgendwo sonst kann man so schön Low Level mäßig programmieren als mit Assembler und deswegen ist Assembler noch so beliebt bei den Proggern die gerne noch präzise und fein granulisert die Hardware ansteuern wollen.
Die ganzen abstrahierenden Hochsprachen sind dagegen doch meist langweilig, man kommt zwar mit ihnen schneller ans Ziel, aber es macht bei weitem nicht mehr so viel Spaß, wie mit Assembler.
Heutzutage braucht man aber meistens auch die Prozessorhandbücher der Hersteller dazu, denn simple Anwendungen, bei denen man den Assemblercode noch auswendig kannte, schreibt keiner mehr. Bei AMD etc. gibt es die Handbücher kostenlos als PDF zum Download.
zum anfangen eignen sich microcontroller einiges besser, da sie weit weniger komplex sind. auch wenn der 8051 inzwischen nicht mehr tau frisch ist ist asm damit sehr einfach, da alle befehle in eine handliche liste passen :-) ähnliches gilt auch für atmel AVR und PIC von microchip
in letzter zeit verwende ich jedoch vorwiegend c als asm mit der avr libc, da gibts auch hardwarenahe und garantiert nicht portable c beispiele ;-);-);-)
Den 8051 gibts mittlerweile auch als OpenSource-IPCore, falls duch auch gleich VHDL mitüben willst. Das macht auch richtig Spaß und ist nicht mal Praxisfremd.
Die Peripherals "händisch" mit C anzusteuern ist bei manchen µC fast schon so abstrakt wie Assembler zu proggen, so cryptisch wie die meisten Handbücher geschrieben sind. Aber wenn man seine Treiber selber schreibt, weis man wenigsten was funktioniert und was nicht. Die meisten Leute kennen ja nur mehr die Arduino Libraries, is ja irgentwie fad und man steht dann bei etwas Mainstraim-fremderer Hardware an.
Man kann schon Assemblercode schreiben, der auf allen x86 kompatiblen Prozessoren läuft. Dabei muss man sich aber auf einen Befehlssatz beschränken, der eigentlich immer besser von einem Hochsprachen-Compiler genutzt wird.
Assembler bietet quasi nur einen Mehrwert, wenn man Spezialaufrufe nutzt, die von Compilern nicht ausreichend unterstützt werden. Diese Aufrufe sind dann prozessorspezifisch.
Assembler macht einfach Spaß, nirgendwo sonst kann man so schön Low Level mäßig programmieren als mit Assembler und deswegen ist Assembler noch so beliebt bei den Proggern die gerne noch präzise und fein granulisert die Hardware ansteuern wollen.
Die ganzen abstrahierenden Hochsprachen sind dagegen doch meist langweilig, man kommt zwar mit ihnen schneller ans Ziel, aber es macht bei weitem nicht mehr so viel Spaß, wie mit Assembler.
Assembler ist Arbeit.. Spass machts höchsten im Game Warbots..
Arbeit macht Spaß!
Kennt jemand gute Tutorials oder HowTos ?
Irgendwie kann ich nicht so wirklich in die tiefe Welt der low-level Programmierung einsteigen.
Brauch man wirklich so viel Wissen über Elektronik, die Hardware etc ?
Es gibt nichts, was es nicht gibt: asm.sourceforge.net
Heutzutage braucht man aber meistens auch die Prozessorhandbücher der Hersteller dazu, denn simple Anwendungen, bei denen man den Assemblercode noch auswendig kannte, schreibt keiner mehr. Bei AMD etc. gibt es die Handbücher kostenlos als PDF zum Download.
zum anfangen eignen sich microcontroller einiges besser, da sie weit weniger komplex sind. auch wenn der 8051 inzwischen nicht mehr tau frisch ist ist asm damit sehr einfach, da alle befehle in eine handliche liste passen :-)
ähnliches gilt auch für atmel AVR und PIC von microchip
in letzter zeit verwende ich jedoch vorwiegend c als asm mit der avr libc, da gibts auch hardwarenahe und garantiert nicht portable c beispiele ;-);-);-)
Den 8051 gibts mittlerweile auch als OpenSource-IPCore, falls duch auch gleich VHDL mitüben willst. Das macht auch richtig Spaß und ist nicht mal Praxisfremd.
Die Peripherals "händisch" mit C anzusteuern ist bei manchen µC fast schon so abstrakt wie Assembler zu proggen, so cryptisch wie die meisten Handbücher geschrieben sind. Aber wenn man seine Treiber selber schreibt, weis man wenigsten was funktioniert und was nicht. Die meisten Leute kennen ja nur mehr die Arduino Libraries, is ja irgentwie fad und man steht dann bei etwas Mainstraim-fremderer Hardware an.
ich dachte immer die letzten assembler-programmierer sind die exploit-schreiber
Tja was funktionieren soll tut es dann eben auch
Das heisst bei der x86-Programmierung braucht man bei jedem Prozessor eine andere Assembler-Sprache ??
Pentium DX 50 MHz Programme laufen nicht auf Pentium 4 2 GHz ??
Und diese auch nicht auf einem i7 2700k auf einem x86 OS ?
Kein generischer Assembler-Code der auf AMD, Intel oder VIA gleich läuft ???
mfg
Man kann schon Assemblercode schreiben, der auf allen x86 kompatiblen Prozessoren läuft. Dabei muss man sich aber auf einen Befehlssatz beschränken, der eigentlich immer besser von einem Hochsprachen-Compiler genutzt wird.
Assembler bietet quasi nur einen Mehrwert, wenn man Spezialaufrufe nutzt, die von Compilern nicht ausreichend unterstützt werden. Diese Aufrufe sind dann prozessorspezifisch.