11. Assemblerdirektiv¶
11.1. Etiketter¶
label(INNER1)
Detta definierar en etikett för användning i en förgreningsinstruktion. Sålunda kommer ett b(INNER1) någon annanstans i koden att få exekveringen att fortsätta med instruktionen efter label-direktivet.
11.2. Definiera inline-data¶
Följande assemblerdirektiv underlättar inbäddning av data i ett assemblerkodblock.
data(size, d0, d1 .. dn)
Data-direktivet skapar en array av datavärden i minnet. Det första argumentet anger storleken i byte på de efterföljande argumenten. Den första satsen nedan kommer alltså att få assemblern att placera tre byte (med värdena 2, 3 och 4) i på varandra följande minnesplatser medan den andra kommer att få den att avge två fyrabytesord.
data(1, 2, 3, 4)
data(4, 2, 100000)
Datavärden som är längre än en enda byte lagras i minnet i little-endian-format.
align(nBytes)
Justera följande instruktion till ett nBytes-värde. ARM Thumb-2-instruktioner måste vara tvåbytesjusterade, därför är det lämpligt att utfärda align(2) efter data-direktiv och före eventuell efterföljande kod. Detta säkerställer att koden körs oavsett storleken på dataarrayen.