Was ist eine Assemblersprache?
Assemblersprachen sind einfache Sprachen, die für eine bestimmte Computerarchitektur spezifisch sind. Zum Vergleich: Viele Programmiersprachen auf hoher Ebene können auf mehreren Architekturen verwendet werden, müssen jedoch interpretiert oder kompiliert werden, bevor sie den Prozessor erreichen.
Assemblersprache
Assemblersprachen wurden weitgehend durch Programmiersprachen auf hohem Niveau ersetzt. Softwareentwickler schreiben lieber eine einzige Anwendung, die auf allen PCs funktioniert - unabhängig davon, ob sie über Intel- oder AMD-Prozessoren verfügen - und verwenden dabei Hochsprachen. Zum Vergleich: Sie müssten separate Anwendungen für jeden Typ von Computerarchitektur in Assemblersprachen schreiben. Diese Anwendungen sind äußerst schwierig zu warten, da mit jedem Update mehrere verschiedene Anwendungen aktualisiert werden müssen.
Die grundlegendsten Anweisungen, die von einem Computer ausgeführt werden, sind Binärcodes, die aus Einsen und Nullen bestehen, da diese direkt in die Ein- und Ausschaltzustände für Elektrizität übersetzt werden können, die sich durch einen Prozessor bewegt. Natürlich ist es für Softwareentwickler - oder jeden Menschen - unpraktisch, Informationen in Einsen und Nullen zu übersetzen. Aus diesem Grund wurden Assemblersprachen entwickelt, um den Prozess zu vereinfachen. Diese Assemblersprachen waren immer noch mit viel Arbeit beim Übersetzen von Code über verschiedene Architekturen verbunden, sodass höhere Programmiersprachen folgten.
Allerdings sind Assemblersprachen in bestimmten Märkten, die hohe Geschwindigkeit und Leistung erfordern, immer noch weit verbreitet. Flugsimulatoren verwenden möglicherweise hochspezialisierte Architekturen, bei denen höhere Sprachen nicht funktionieren, was bedeutet, dass Assemblersprachen möglicherweise eine Notwendigkeit sind. Hochfrequenzhandelsvorgänge können auch Assemblersprachen verwenden, da sie Analysen und Transaktionen viel schneller ausführen können als Hochsprachen, was zu besseren Handelsumsätzen und einer höheren Rentabilität im Vergleich zur Konkurrenz führen kann.
Beispiel für Assemblersprachen
Assemblersprachen senden Anweisungen an den Prozessor, den Speicher und andere Computerkomponenten. Diese Richtungen sind etwas abstraktere Versionen von Binärcode, der nur aus Einsen und Nullen besteht. Beispielsweise weist der Code 10110000 01100001 einen Prozessor an, einen 8-Bit-Wert in ein Register zu verschieben. Durch Verwendung des Hexadezimalformats können diese Anweisungen auf B0 61 gekürzt werden. Assemblersprachen machen dies noch verständlicher, indem sie Operatoren wie MOV AL, 61h einführen, wobei MOV eine Abkürzung für "move" ist.
Übergeordnete Programmiersprachen erledigen diese Aufgaben häufig automatisch und ermöglichen es den Software-Ingenieuren, sich auf wesentlich übergeordnete Aufgaben zu konzentrieren, z. B. das Zuweisen von Variablen und das Ausführen von Vorgängen. Zum Beispiel kann ein Softwareentwickler eine Variable in JavaScript mit let myVariable = 123 definieren, und dieser Variablen wird basierend auf der Größe der Ganzzahl 123 und anderen Faktoren automatisch eine Stelle im Speicher zugewiesen. Der Softwareentwickler muss sich nicht um die Speicherverwaltung kümmern und kann sich stattdessen auf das konzentrieren, was die Variable tut.