11. Directive de asamblare¶
11.1. Etichete¶
label(INNER1)
Aceasta definește o etichetă pentru utilizare într-o instrucțiune de ramificare. Astfel, în altă parte a codului, un b(INNER1) va face ca execuția să continue cu instrucțiunea de după directiva etichetei.
11.2. Definirea datelor inline¶
Următoarele directive de asamblare facilitează încorporarea datelor într-un bloc de cod de asamblare.
data(size, d0, d1 .. dn)
Directiva data creează un tablou de valori de date în memorie. Primul argument specifică dimensiunea în octeți a argumentelor ulterioare. Prin urmare, prima instrucțiune de mai jos va face ca asamblorul să plaseze trei octeți (cu valorile 2, 3 și 4) în locații de memorie consecutive, în timp ce a doua îl va face să emită două cuvinte de patru octeți.
data(1, 2, 3, 4)
data(4, 2, 100000)
Valorile de date mai lungi de un singur octet sunt stocate în memorie în format little-endian.
align(nBytes)
Aliniază instrucțiunea următoare la o valoare de nBytes. Instrucțiunile ARM Thumb-2 trebuie aliniate la doi octeți, prin urmare este recomandabil să emiteți align(2) după directivele data și înaintea oricărui cod ulterior. Acest lucru asigură că respectivul cod va rula indiferent de dimensiunea tabloului de date.