2

アーム例外処理の基本を調べていたところ、次のような疑いが生じました: (アボート例外の例を取り上げています) プロセッサがユーザー モードで実行されていると仮定しましょう。

例外が発生すると、プロセッサは現在pcを abort_modeLRおよびCPSRアボート モードに保存しSPSR、実行はアボートのベクトル アドレスにジャンプするため、アボートのベクトル アドレスPCが含まれるようになります。

したがって、ここで得られるのは、フローをアボート モードに転送する前です (PC でベクトルをアボートする)。CPU は以下のタスクを実行します: 上記のように、「現在pcは abort_mode に移行LRし、CPSRモードを中止SPSRし、実行は中止のベクトル アドレスにジャンプします」。上記のタスクを実行するために、どのモードで、どこから命令が実行されますか?

4

1 に答える 1

3

アボート例外が発生した場合、引用しているテキストは正しいです。他の例外は異なるモードを使用します。

PC を例外モード LR にコピーし、CPSR を SPSR にコピーし、PC を例外ベクトルに設定することは、プロセッサが例外の発生時に自動的に行うことです。指示は必要ありません。また、その例外モードで使用される SP に切り替えます。

次に来るのは例外ハンドラです。そして完全にソフトウェアです。

于 2013-05-09T08:27:48.583 に答える