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 von Assembler und zeigen, wie man den Quelltext mit sinnvollen Kommentaren ausstatten kann.

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 Konstantenwerte, 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

Weiterführende Artikel

  • Speichersegmente

Bitte bewerten (1 - 5):