Assembly

Assembly ist für die "echten" Computernerds die einzig wahre Programmiersprache. Aber Spaß beiseite! Assembly ist ungefähr die schwierigste Programmiersprache, die es gibt. Vielleicht nicht ganz. Aber es gibt nichts, was näher an der Hardware dran ist. Assembly ist die symbolische Notation der für uns unverständlichen Maschinensprache.

Assembly ist eine Programmiersprache, die sehr auf den Prozessor, zu dem sie gehört, ausgerichtet ist.

Assemblysprachen bezeichnet man deshalb als maschinenorientierte Programmiersprachen und – als Nachfolger der direkten Programmierung mit Zahlencodes – als Programmiersprachen der zweiten Generation: Anstelle eines Binärcodes der Maschinensprache können Befehle und deren Operanden durch leichter verständliche mnemonische Symbole in Textform (z. B. „MOV" für move), Operanden z. T. als symbolische Adresse, notiert und dargestellt werden. (Nach Wikipedia: wikipedia.org/wiki/Assemblersprache)

8088/8086-Assembly

Diese Programmiersprache - 8086/8088-Assembly - konnte ich richtig gut ausprobieren. Das führe ich mal aus: Auf der Website james.. kann ich sogar kleine Programme programmieren, irgendwo speichern und laufen lassen! Siehe ein Bild mit MS-DOS 5.00.

Unter dem alten "debug.exe" in MS-DOS 5.00 gibt man die Zahl "65" nicht dezimal, sondern hexadezimal ein: "41" also, was eine dezimale 65 ist und ein großes "A" auf die Konsole bringt. Das mit Hexadezimal ist schwer, wie ich zugeben muss. Das ist typisch Assembly. int 21 ist ein Interrupt.

Abgrenzung von "Assembler"

"Assembly" ist nach der Definition vieler Informatiker die Programmiersprache, die hier behandelt wird. Ein "Assembler" dagegen ist nur ein Programm.

Meine Definition: Assembly heißt die Programmiersprache. Sie muss hier unterschieden werden von dem Tool "Assembler". Denn Assembly ist die Sprache, Assembler das Tool oder Programm, mit dem Informatiker Assemblycode weiterverarbeiten.

Aus dem Internet

(Abgewandelt aus: http://assembler.hpfsc.de/)

Ein Assembler ist ein Übersetzer für Programmcode, der sich aus Maschinenbefehlen zusammensetzt. Diese Befehle können sich je nach verwendetem Prozessor stark unterscheiden. Im normalen PC werden Prozessoren verwendet, die zu dem 8086 von Intel kompatibel sind. Der Befehlssatz wurde über die Jahre erweitert, wobei die Kompatibilität zum "Urmodell" stets gewahrt wurde.

In der Art der verwendeten Befehle in der Assembly-Sprache besteht der wesentliche Unterschied zu allen anderen Programmiersprachen. Während sich Befehle bei den Hochsprachen in der Übersetzung aus mehreren Anweisungen im endgültigen Code zusammensetzen, wird der Assemblybefehl durch den Assembler lediglich in die entsprechende Binärform übersetzt. Weiterhin ersetzt der Assembler Variablen durch die entsprechenden Speicheradressen, die dann im Maschinencode nicht mehr als Variablen (mit den Variablennamen) auftauchen. Es gibt in der Maschinensprache keine Variablen!

Die Hochsprachen stellen eine Vielzahl von Funktionen wie z. B. clrscr, writeln usw. zur Verfügung. Deren Realisierung würde in Assembly mehrere Zeilen Code in Anspruch nehmen. Bei solchen Standardfunktionen sollte man immer auf die Funktionen der Hochsprache (also etwa C) zurückgreifen.

Assembly-Programmierung wird auch oftmals als Systemprogrammierung bezeichnet. Dieses Wort weist auf den ganz speziellen Charakter hin. Assemblyprogramme sind meist nur auf einer Prozessorplattform lauffähig und können nur unter großem Aufwand auf ein anderes System portiert werden. So kann man bei einem Assembler nicht einstellen, einmal 8086-Befehle und für das nächste System RISC-Befehle zu nutzen, da die verwendeten Befehle und deren Einsatz sich stark unterscheiden.

Link zum DOS-Emulator