11. Dyrektywy asemblera¶
11.1. Etykiety¶
label(INNER1)
Definiuje etykietę do użycia w instrukcji skoku. Tak więc gdzie indziej w kodzie b(INNER1) spowoduje kontynuację wykonania od instrukcji następującej po dyrektywie etykiety.
11.2. Definiowanie danych wbudowanych¶
Poniższe dyrektywy asemblera ułatwiają osadzanie danych w bloku kodu asemblera.
data(size, d0, d1 .. dn)
Dyrektywa data tworzy w pamięci tablicę wartości danych. Pierwszy argument określa rozmiar w bajtach kolejnych argumentów. Stąd pierwsza instrukcja poniżej spowoduje, że asembler umieści trzy bajty (o wartościach 2, 3 i 4) w kolejnych miejscach pamięci, podczas gdy druga spowoduje wyemitowanie dwóch czterobajtowych słów.
data(1, 2, 3, 4)
data(4, 2, 100000)
Wartości danych dłuższe niż pojedynczy bajt są przechowywane w pamięci w formacie little-endian.
align(nBytes)
Wyrównuje następną instrukcję do wartości nBytes. Instrukcje ARM Thumb-2 muszą być wyrównane do dwóch bajtów, dlatego zaleca się wydanie align(2) po dyrektywach data i przed jakimkolwiek kolejnym kodem. Zapewnia to, że kod będzie działał niezależnie od rozmiaru tablicy danych.