6.1.3. 例外によるモードとレジスタの使用

通常、アプリケーションはユーザモードで実行されますが、例外処理は特権付きモードで実行される必要があります。例外が発生するとプロセッサモードが変更され、これにより各例外ハンドラは、以下のような特定のバンクレジスタのサブセットにアクセスできるようになります。

FIQ の場合、各例外ハンドラはさらに 5 本の汎用レジスタ(r8_FIQr12_FIQ)にアクセスできます。

各例外ハンドラは、終了時に他のレジスタを元の内容に復元させる必要があります。この操作は、ハンドラが必要とするすべてのレジスタ内容をスタックに保存し、復帰前にこれらを復元することで可能となります。Angel または ARMulator® ISS を使用する場合は、必要となるスタックが自動的に設定されます。これらを使用しない場合は、スタックを設定する必要があります。

Note

前述のとおり、register_mode 形式のシンボリックなレジスタ名はアセンブラによって事前に宣言されません。この形式を使用するには、RN アセンブラディレクティブを使用して、適切なシンボリック名を宣言する必要があります。例えば、lr_FIQ RN r14 を使用すると、r14 のシンボリックレジスタ名 lr_FIQ を宣言できます。RN ディレクティブの詳細については、RealView Compilation Tools v3.0 Assembler Guide のディレクティブに関する章を参照して下さい。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential