11. Assembler-Direktiven

11.1. Labels

  • label(INNER1)

Dies definiert ein Label zur Verwendung in einem Sprungbefehl. Somit bewirkt ein b(INNER1) an anderer Stelle im Code, dass die Ausführung mit dem Befehl nach der Label-Direktive fortgesetzt wird.

11.2. Inline-Daten definieren

Die folgenden Assembler-Direktiven erleichtern das Einbetten von Daten in einen Assembler-Codeblock.

  • data(size, d0, d1 .. dn)

Die data-Direktive erzeugt ein Array von Datenwerten im Speicher. Das erste Argument gibt die Größe der nachfolgenden Argumente in Bytes an. So bewirkt die erste der untenstehenden Anweisungen, dass der Assembler drei Bytes (mit den Werten 2, 3 und 4) an aufeinanderfolgende Speicherstellen schreibt, während die zweite zwei Vier-Byte-Wörter ausgibt.

data(1, 2, 3, 4)
data(4, 2, 100000)

Datenwerte, die länger als ein einzelnes Byte sind, werden im Speicher im Little-Endian-Format abgelegt.

  • align(nBytes)

Richtet den folgenden Befehl an einem nBytes-Wert aus. ARM-Thumb-2-Befehle müssen an zwei Bytes ausgerichtet sein, daher ist es ratsam, nach data-Direktiven und vor jeglichem nachfolgenden Code ein align(2) auszugeben. Dies stellt sicher, dass der Code unabhängig von der Größe des Daten-Arrays ausgeführt wird.