2

Intelマニュアルに示されているように、割り込みゲートとトラップゲートの両方を使用してハンドラルーチンにアクセスできます。また、一部の例外は、割り込みとベクトル番号を共有することさえあります。そのような共有ベクトルがCPUによっていつ検出されるのか、CPUはそれが例外を表すのか、割り込みを表すのかをどうやって知ることができるのでしょうか。

私は次のことの間で論理について少し混乱しています:

  • IDTのゲートタイプの決定

  • ベクトルが例外を表すのか割り込みを表すのかを判断する

どちらがどちらを決定しますか?

私は自分自身を明確にしたと思います...

アップデート1

nosの返信ありがとうございます。どのベクトルが割り込みまたはトラップを表すかをCPUに指示する必要があるということですか?CPUが割り込みとトラップに関してEFLAGS[IF]を異なる方法で処理することを知っていますが、CPUはこの決定を行う方法をどのように知っていますか?CPUは、ベクトルに対応するIDTエントリのタイプフィールドに基づいて決定を下しますか?それとも、システムがどのように接続されているかに依存し、それに応じてIDTエントリのタイプを設定する必要がありますか?つまり、タイプファイルは完全に私たちのイラストですか、それともCPUに不可欠ですか?

および関連する質問:コールゲート、割り込みゲート、トラップゲートの違いは?

4

1 に答える 1

1

特定の ISR の割り込みゲートとトラップ ゲートについて、CPU をプログラムする必要があります。

これは、IDT エントリのビット 40 ~ 43 によって設定されます。情報はこちら: http://wiki.osdev.org/Interrupt_Descriptor_Table

于 2010-08-09T17:02:48.253 に答える