Grundlegende Syntax von Assembler
Die Assembler-Syntax lässt sich grundlegend in drei Abschnitte unterteilten:
- Datenbereich,
- bss-Abschnitt und
- Textabschnitt.
In diesem Artikel erklären wir die grundlegende Syntax der Programmiersprache Assembler und zeigen zusätzlich auf, wie man den Quelltext mit sinnvollen Kommentaren ausstatten kann, um eine bessere Dokumentation zu erzielen.
Datenbereich in Assembler
Der Datenbereich dient zur Deklaration von initialisierten Daten oder Konstanten. Diese Daten ändern sich zur Laufzeit nicht. In diesem Abschnitt können die Konstanten, Dateinamen, Puffergrößen usw. deklariert werden.
Die Syntax für die Deklaration des Datenbereichs kann folgendermaßen erfolgen:
section .data
bss-Abschnitt in Assembler
Der Abschnitt bss wird für die Deklaration von Variablen verwendet. Die Syntax für die Deklaration des bss-Abschnitts kann folgendermaßen erfolgen:
section .bss
Textabschnitt in Assembler
Der Textabschnitt beinhaltet den aktuellen Code. Dieser Abschnitt muss mit der Deklaration global _start beginnen, die dem Kernel mitteilt, wo die Programmausführung beginnt.
Die Syntax für die Deklaration von Textabschnitten kann folgendermaßen erfolgen:
section .text global _start _start:
Kommentare in Assembler
Ein Kommentar in Assembler beginnt immer mit einem Semikolon (;). Es kann jedes druckbare Zeichen enthalten, einschließlich Leerzeichen. Es kann auf einer Linie von selbst erscheinen, wie zum Beispiel:
; Dieses Programm zeigt eine Meldung auf dem Bildschirm an.
oder, auf der gleichen Linie zusammen mit einer Anweisung, wie zum Beispiel:
mov ah, 0x4c ; com-Dateien beginnen immer mit 256 Bytes im Speicher.
Assembler Syntax im Detail
Assembler-Statements werden mit einer Anweisung pro Zeile eingegeben. Jede Anweisung folgt dem folgenden Format:
[label] mnemonic [operands] [;comment]
Eine Basisanweisung besteht aus zwei Teilen: der erste Teil ist der Name der Anweisung (oder der mnemonischen), die ausgeführt werden soll, und der zweite Teil sind die Operanden oder die Parameter des Befehls. Die Felder in den eckigen Klammern sind optional.
Nachfolgend sind einige Beispiele für typische Assembler-Anweisungen beschrieben:
mov SUMME, 187 ; Verschiebt den Wert 187 in die Variable SUMME add SUMME, 13 ; Fügt den Wert 13 zur Variable SUMME hinzu int 0x80 ; Ruft den Kernel auf mov AL, 10 ; Verschiebt den Wert 187 int das AL-Register