11. Assembler-directieven

11.1. Labels

  • label(INNER1)

Dit definieert een label voor gebruik in een vertakkingsinstructie. Zo zal een b(INNER1) elders in de code ervoor zorgen dat de uitvoering doorgaat met de instructie na het label-directief.

11.2. Inline data definiëren

De volgende assembler-directieven vergemakkelijken het inbedden van data in een assemblercodeblok.

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

Het data-directief creëert een array van datawaarden in het geheugen. Het eerste argument geeft de grootte in bytes van de daaropvolgende argumenten aan. Vandaar dat de eerste instructie hieronder de assembler drie bytes (met de waarden 2, 3 en 4) in opeenvolgende geheugenlocaties laat plaatsen, terwijl de tweede er twee woorden van vier bytes laat uitzenden.

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

Datawaarden die langer zijn dan een enkele byte worden in het geheugen opgeslagen in little-endian-formaat.

  • align(nBytes)

Lijn de volgende instructie uit op een waarde van nBytes. ARM Thumb-2-instructies moeten op twee bytes uitgelijnd zijn, daarom is het raadzaam om align(2) uit te geven na data-directieven en vóór eventuele daaropvolgende code. Dit zorgt ervoor dat de code zal draaien ongeacht de grootte van de data-array.