6.3.1. 例外に対するプロセッサの応答

例外が生成されると、プロセッサは以下のように動作します。

  1. カレントプログラムステータスレジスタ(CPSR)を、例外が処理されるモードの保存プログラムステータスレジスタ(SPSR)にコピーします。これにより、現在のモード、割り込みマスク、および条件フラグが保存されます。

  2. 現在 Thumb 状態の場合、ARM 状態への切り替えが行われます。

  3. 以下を行うために、適切な CPSR モードビットを変更します。

    • 適切なモードに切り替え、そのモードの適切なバンクレジスタにマップする。

    • 割り込みをディセーブルする。どの例外が発生しても IRQ はディセーブルされます。FIQ は FIQ が発生したときと、リセット時にディセーブルされます。

  4. 復帰アドレスと復帰命令で定義されているように、lr_mode に復帰アドレスをセットします。

  5. プログラムカウンタに、例外のベクタアドレスをセットします。

    Thumb に対応していない ARM プロセッサの場合、この動作によって適切な例外ハンドラへの分岐が発生します。

    Thumb 対応プロセッサでは、ステップ 2 で Thumb 状態から ARM 状態に切り替わることで、このベクタアドレスに格納される ARM 命令(分岐または PC 相対ロード)のフェッチ、デコード、および実行が正しく行われます。これによって ARM コードで記述する必要のあるトップレベルベニアへの分岐が発生します。

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