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.