11. Директиви асемблера

11.1. Мітки

  • label(INNER1)

Це визначає мітку для використання в інструкції переходу. Таким чином, в іншому місці коду b(INNER1) спричинить продовження виконання з інструкції після директиви мітки.

11.2. Визначення вбудованих даних

Наступні директиви асемблера полегшують вбудовування даних у блок коду асемблера.

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

Директива data створює масив значень даних у пам’яті. Перший аргумент вказує розмір у байтах наступних аргументів. Таким чином, перший оператор нижче змусить асемблер розмістити три байти (зі значеннями 2, 3 та 4) у послідовних комірках пам’яті, тоді як другий змусить його видати два чотирибайтових слова.

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

Значення даних довші за один байт зберігаються в пам’яті у форматі з порядком байтів від молодшого до старшого (little-endian).

  • align(nBytes)

Вирівняти наступну інструкцію до значення nBytes. Інструкції ARM Thumb-2 повинні бути вирівняні по двох байтах, тому рекомендується вставляти align(2) після директив data та перед будь-яким наступним кодом. Це гарантує, що код працюватиме незалежно від розміру масиву даних.