Assembler


1. Allgemein


Assembler gibt es für jeden Prozessortyp. Man kann, aber nur wenn man es richtig kann, den schnellsten Code damit erzeugen. Man wird für die Implementierung viel länger brauchen, im Vergleich zum selben Ergebnis unter Einsatz einer Hochsprache. Der Code ist schwer lesbar und schwer zu pflegen. Grundsätzlich kann man sagen: Man implementiert etwas in Assembler, wenn der Compiler der einer Hochsprache, nicht das macht, was wir wollen. Unabhängig von der Fähigkeit der Programmierung in Assembler, ist es nie verkehrt Assembler lesen zu können. Bei der Fehlersuche hilft das unheimlich! Vertrauen Sie mir: Vertrauen Sie niemals einem Compiler.


2. AVR-Assembler


Assmbler für die AVRs von Atmel
Mein einstieg in die Mikrocontrollerprogrammierung zur Schulzeit über unseren Physiklehrer, der gerne über seine privaten Mikrocontrollerprojekte erzählte.
Das muss ca. um 1997 gewesen sein.
Über den Lehrer kam ich an den Mikrocontroller, Dokumentation und die Software auf Diskette. Den Programmer musste man sich selbst löten.
Zugang zum Internet hatte ich damals noch nicht.
http://www.avr-asm-tutorial.net/avr_de/beginner/index.html


3. C166-Assembler


Zur Studienzeit hat uns der Prof. Dr. Schindler damit beschäftigt. In den Übungen war eine Waschmaschinen-Steuerung dabei. Eine Andere Übung bestand darin, eine Melodie über den Microcontroller zu erzeugen und ausgeben. habe mich damals für die Titelmusik aus dem Film "Der Exorzist", die ja eigentlich von Mike Oldfield stammt.
Diese Vorlesung mit dem Übungen prägte meine beruflichen Entscheidungen.
TASKING C166/ST10 Entwicklungstools


4. Motorola 56000 Assembler


Da hat uns Prof. Dr. Vogl an die Grenzen unseres Vorstellungsvermögens gebracht. Und wäre das nicht schon genug, wir mussten das Theoriewissen in den dazugehörigen Übungen auch noch in Assembler umsetzen. Der Einstieg war steinig. Ich profitierte stark von dieser Vorlesung im Berufsleben.
A56 freeware assembler for the 56000 architecture


5. 8086 Assembler


In einem Ausladspraktikum in den USA kam ich dann mit x86-Assembler in Berührung. Es ging jedoch weniger darum, ganze Programme in Assembler zu schreiben, sondern vielmehr optimierten Code zu verstehen.

8086/88 Assembler Befehlsreferenz
Abgesehen von Erweiterungen wie MMX und SSE haben aktuelle Prozessoren sehr viele Maschinenbefehle. Deshalb kann das Lernen der Maschinensprache schwer fallen. Ich empfehle zunächst das Lernen der früheren befehle, die weiterhin Bestandteil der aktuellen Prozessoren sind.
http://www.i8086.de/asm/8086-88-asm.html
http://runtime-basic.net/Assembler:Funktionen:Beschreibung-Kurz-CPU

NASM
Ein Assembler für Linux und Windows.
http://de.wikipedia.org/wiki/NASM
http://nasm.sourceforge.net/
http://sourceforge.net/projects/nasm
nasm

SSE
Nach der Einführung des MMX-Befehlsatzes hat Intel noch einmal den Befehssatz um Befehle zur Parallelverarbeitung erweitert. Die Streaming SIMD Extensions biten die Möglichkeit mehrere Operationen gleichzeitig auszuführen. Beispielsweise kann man vier Quadratwurzeln aus Fließkommazahlen gleichzeitig ziehen. Die SSE sind seit Pentium III (Katmai) ein fester Bestandteil des Intel Prozessors. Ich hatte einmal das große Vergnügen Code in Assembler mit dem SSE-Befehlssatz zu schreiben. Bei richtiger Anwendung sind beachtliche Optimierungen hinsichtlich Ausführungsgeschwindigkeit möglich.
http://x86.ddj.com/articles/sse_pt2/simd2.htm


6. ARM Thumb-2 Assembler


Mit der Popularität der Mikrocontroller beschäftigte ich mich professionell mit dem ARM Assembler.


7. Z80


z80asm



Siehe auch
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki