4.3 アセンブリ言語のインターワーク

いくつかのアセンブリ言語命令によって、ARM ステートと Thumb ステートが切り替えられます。

--apcs=/interwork コマンドラインオプションを使用すると、別の命令セット状態から呼び出すことのできるコードを ARM アセンブラでアセンブルできます。

armasm --thumb --apcs=/interwork armasm --arm --apcs=/interwork

アセンブリ言語のソースファイルには、いくつかのエリアを設けることができます。これらは、ARM Executable and Linkable Format(ELF)セクションに対応します。各エリアは、ARM 命令と Thumb 命令の一方または両方を保持できます。

リンカを使用して、呼び出し元とは異なる命令セットを使用するルーチンへの呼び出しを設定できます。これを行うには、BL を使用してルーチンを呼び出します。

必要であれば、命令セットを明示的に変更するコードを記述することもできます。状況によっては、この方法で、サイズが小さいコードや実行速度が速いコードを記述できます。BXBLXLDRLDM、および POP 命令を使用して、命令セット状態の変更を実行できます。

ARM アセンブラでは、Thumb コードと ARM コードの両方をアセンブルできます。--thumb オプションを指定して呼び出さない限り、アセンブラはデフォルトで ARM コードをアセンブルします。

ARM および THUMB ディレクティブを使用して、適切な命令セットの命令をアセンブルするようアセンブラに指定できます。

関連する概念
4.7 アセンブリ言語のインターワークの例
4.8 ベニアを使用したインターワーク
関連情報
--apcs=qualifier…qualifier アセンブラオプション
--arm アセンブラオプション
--thumb アセンブラオプション
B
ARM、THUMB、THUMBX、CODE16、CODE32
非機密扱いPDF file icon PDF 版ARM DUI0471JJ
Copyright © 2010-2013 ARM.All rights reserved.