このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

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) を置くとよいでしょう。こうすれば、データ配列のサイズにかかわらずコードが動作します。