Teachers Paradise School Supplies Teacher Resources Free Encyclopedia
Teachers Paradise FREE Teaching Resources
Home Arts Crafts Audio Visual Equipment Office Supplies Teacher Resources
Hauptseite | See live article

Assemblersprache

Eine Assemblersprache ist eine durch den Menschen lesbare Form eines Computerprogrammes, das die Maschinensprache einer spezifischen Computerarchitektur repräsentiert. Jede Rechnerarchitektur hat folglich ihre eigene Assemblersprache.

Table of contents
1 Was ist eine Assemblersprache
2 Verschiedene Assemblersprachen
3 Der Nutzen von Assemblern
4 Weblinks

Was ist eine Assemblersprache

Programmbefehle in Maschinensprache sind einfache Bitmuster, während in der Assemblersprache besser merkbare Kürzel, so genannte mnemonische Symbole, verwendet werden.

Beispiel:

Der folgende Befehl in Maschinensprache

 10110000 01100001

entspricht dem Assemblerbefehl (für x86-Prozessoren)

 mov $0x61, %al

und bedeutet, dass der
hexadezimale Wert 61 (97 dezimal) ins Register 'al' geladen werden soll. (al: dabei steht das 'a' für das Register, und das 'l' für low, was praktisch den ersten Teil des Registers entspricht. Der Zweite Teil des Registers wird mit einem 'h' ausgezeichnet, das 'h' steht für Hight (Beispiel: 'ah'). Soll das ganze Register (je nach Speicherbedarfs des Typen der gespeichert werden soll) angesprochen werden wird 'l' bzw. 'h' durch 'x' ersetzt: 'ax').

Mit Computerhilfe kann man das eine in das andere weitgehend 1 zu 1 übersetzen. Jedoch werden Adressumformungen vorgenommen, so dass man symbolische Adressen benutzen kann. Im allgemeinen haben die Assembler neben den eigentlichen Codes auch sog. Steueranweisungen, die die Programmierung bequemer machen, z. B. zur Definition eines Basisregisters. Das Übersetzen von Assemblersprache in Maschinensprache wird durch ein Programm durchgeführt, das man Assembler nennt, das Rückübersetzen von Maschinensprache in Assemblersprache von einem Disassembler.

Häufig werden komplexere Assemblersprachen (Makroassembler) verwendet, um die Programmierarbeit zu erleichtern. Makros sind dabei Bruchstücke von Assemblercode, der vor dem eigentlichen Assemblieren automatisch an Stelle der Makroaufrufe eingefügt wird. Dabei können einfache Parameterersetzungen vorgenommen werden. Die Disassemblierung von derart generiertem Code ergibt im allgemeinen nicht wieder die Makroaufrufe, sondern den reinen Assemblercode.

Der Text, der hier stand, wurde in die Diskussion ausgelagert.

Verschiedene Assemblersprachen

Jede Computerarchitektur hat ihre eigene Maschinensprache und damit Assemblersprache. Das Beispiel oben ist für den 80386. Die Sprachen unterscheiden sich in Anzahl und Typ der Operationen.

Jedoch haben alle Architekturen die folgenden grundlegenden Operationen:

Bestimmte Rechnerarchitekturen haben oft auch komplexere Befehle wie z.B.

Der Nutzen von Assemblern

Es gibt unterschiedliche Ansichten zum Nutzen der direkten Programmierung in Assemblersprache. In vielen Fällen können moderne Compiler höhere Programmiersprachen in effizienten und schnellen Code übersetzen. Auf keinen Fall nämlich wird dem Compiler nach der Hälfte der Arbeit langweilig. ;-)

Ein Kern an Code muss immer in Maschinensprache programmiert werden. Dazu werden häufig Cross-Assembler eingesetzt, die Code für eine andere Rechnerarchitektur erzeugen. Auch Compiler sind ja Programme, die erst einmal in Maschinencode übersetzt werden müssen, bevor mit ihrer Hilfe Programme übersetzt werden können.

Es gibt aber Fälle, in denen diskrete Berechnungen einfacher und effizienter direkt in Assembler geschrieben werden. Einige Systemprogrammieraufgaben verlangen den Gebrauch von Assembler. Die meisten Hochsprachencompiler übersetzen zuerst in Assemblercode, so dass man, wenn man will, Nebeneffekte genauer ansehen kann und gewisse Stellen von Hand optimieren kann.

Bei vielen Anwendungen für kleinere Geräte, die in großen Mengen hergestellt werden, programmiert man lieber in Assembler, um die knappen Ressourcen optimal nutzen zu können.

Weblinks




Pay for Educational Supplies & Teaching Supplies with Visa, Master Card, American Express, Discover or Paypal.
TeachersParadise.com HOME | Safe Shopping Guarantee | Help Desk
All trademarks & brands are the property of their respective owners.
Legal Notice 2000-2008 TeachersParadise.com, Inc. All Rights Reserved