7.28 コンパイラの ARM ステートおよび Thumb ステートの組み込みアセンブラに対する影響

組み込みアセンブラの初期状態(ARM ステートまたは Thumb ステート)は、コマンドラインで指定したコンパイラの初期状態によって決まります。

つまり、以下のことを意味します。
  • コンパイラが ARM ステートで起動した場合、組み込みアセンブラでは --arm が使用されます。
  • コンパイラが Thumb ステートで起動した場合、組み込みアセンブラでは --thumb が使用されます。
各関数の先頭にある組み込みアセンブラの状態は、#pragma arm プラグマおよび #pragma thumb プラグマで変更されたように、コンパイラの呼び出しで設定されています。
組み込みアセンブラの実行ステートは、関数内部でも変更できます。これを行うには、 組み込みアセンブラ関数で、ARMTHUMB、または CODE16 ディレクティブを明示的に使用します。これらのディレクティブを __asm 関数内で使用しても、後続の __asm 関数のステート(ARM か Thumb か)には影響しません。
32 ビット Thumb 対応のプロセッサ用にコンパイルを実行している場合は、Thumb 状態で 32 ビット Thumb 命令および 16 ビット Thumb 命令を使用できます。
16 ビット Thumb 対応のプロセッサ用にコンパイルを実行している場合は、Thumb ステートで 16 ビット Thumb 命令のみを使用できます。
関連する概念
7.26 コンパイラでの組み込みアセンブラのサポート
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.