Thumb2 アーキテクチャ向けインラインアセンブラ

本ドキュメントは、アセンブリ言語プログラミングにある程度精通していることを前提としています。命令セットの簡潔な説明については、以下の References にある ARM Thumb-2 Instruction Set Quick Reference Card を参照してください。インラインアセンブラは、ここで説明する ARM Thumb-2 命令セットのサブセットをサポートします。構文は、ARM が定義したものにできるだけ近づけ、それを Python の関数呼び出しに変換しています。

命令は、特に明記されない限り 32 ビット符号付き整数データに対して動作します。サポートされる命令のほとんどはレジスタ R0-R7 のみに対して動作します。R8-R15 がサポートされる場合はその旨が明記されます。レジスタ R8-R12 は、関数から戻る前に初期値に復元しなければなりません。レジスタ R13-R15 は、それぞれリンクレジスタ、スタックポインタ、プログラムカウンタを構成します。

ドキュメントの表記規則

可能な場合、各命令の動作は Python で記述されています。たとえば

  • add(Rd, Rn, Rm) Rd = Rn + Rm

これにより、命令の効果を Python で示すことができます。特定の場合には、Python が間接参照などの概念をサポートしていないため、これは不可能です。そのような場合に用いる擬似コードは、該当ページで説明されています。

命令のカテゴリ

以下のセクションでは、MicroPython がサポートする ARM Thumb-2 命令セットのサブセットを詳述します。

使用例

これらのセクションでは、アセンブラの使用に関するさらなるコード例とヒントを提供します。

参考文献