Assembler
Ein Assembler ist ein Computerprogramm, das Assemblersprache in Maschinensprache übersetzt. Das Programm zum Rückübersetzen von Maschinensprache in Assemblersprache ist ein Disassembler. Die einfache Version eines Assemblers wird Maschinensprachemonitor genannt. Manchmal verwendet man auch den Ausdruck Assembler anstelle von Assemblersprache.Dies ist möglich, da es - anders als bei Hochsprachen - eine 1-zu-1-Beziehung zwischen einfacher Assemblersprache und Maschinensprache gibt. Häufig werden aber etwas komplexere Assemblersprachen mit Makrofähigkeiten verwendet, so dass diese einfache Abbildung nicht mehr hundertprozentig zutrifft.
Durch Assembler programmierte Programme zeichnen sich dadurch aus, dass man die komplette Bandbreite des Computers ausnutzen kann und Hardwarechips direkt programmieren kann. Assemblerprogramme sind stets um ein Vielfaches kleiner und schneller, als Programme, die mit einer Hochsprache entwickelt wurden.
Assembler findet vor allem in der Systemprogrammierung, sei es Betriebssystemerstellung oder Betriebssystem-API-Programmierung, sowie der Treiberprogrammierung einen großen und bedeutenden Anwendungsbereich.
Die einzelnen Assemblerdialekte unterscheiden sich zum Teil gravierend, da es im Gegensatz zu Hochsprachen wie C oder C++ keine einheitlichen Regeln und Formate für Assembler gibt. Dies liegt vor allem daran, dass jeder Prozessor seine eigenen Operator-Codes (Op-Codes) benutzt, d.h. dass die Befehle für x86-Prozessoren z.B andere sind, als für Prozessoren, die z.B. in den Macintosh Computern von Apple, oder in Handys eingesetzt werden. Für die x86-Prozessoren-Familie und kompatible Prozessoren (z.B. Intels Pentium oder AMDs Athlon) ist der Microsoft Assembler (MASM), Borland Assembler (TASM) und der Netwide Assembler (NASM) weit verbreitet. Daneben gibt es noch Assembler, die für die AT&T-Technik assemblieren können.
Dennoch gibt es eine Reihe von Befehlen, die in ähnlicher Form in fast allen Assemblersprachen vorhanden sind, zumindest bei Prozessoren, die von der Architektur her eine gewisse Verwandtschaft haben, z.B.:
- clc (Lösche das Überlaufflag)
- lda #01 (Lade in den Akku(-speicher) die Zahl 1)
- adc 2d (addiere dazu die Speicherstelle $2d Hex)
- sta $dc1d (speichere das Ergebnis in der Speicherzelle $dc1d Hex)
Siehe auch: Betriebssystem






