11. アセンブラのディレクティブ
11.1. ラベル
label(INNER1)
これは、分岐命令で使うラベルを定義します。したがって、コードの他の場所にある b(INNER1) により、実行はこの label ディレクティブの後の命令から続きます。
11.2. インラインデータの定義
次のアセンブラディレクティブを使うと、アセンブラのコードブロックにデータを埋め込めます。
data(size, d0, d1 .. dn)
data ディレクティブは、メモリ上に n 個のデータ値の配列を作ります。最初の引数は、それに続く引数のサイズをバイト単位で指定します。したがって、下の1つ目の文はアセンブラに3バイト(値は 2、3、4)を連続するメモリ位置に置かせ、2つ目の文は4バイトのワードを2つ出力させます。
data(1, 2, 3, 4)
data(4, 2, 100000)
1バイトより長いデータ値は、リトルエンディアン形式でメモリに格納されます。
align(nBytes)
続く命令を nBytes の値に整列します。ARM Thumb-2 の命令は2バイト境界に整列されていなければならないので、 data ディレクティブの後、続くコードの前に align(2) を置くとよいでしょう。こうすれば、データ配列のサイズにかかわらずコードが動作します。