割り込み処理について読んだ(そして勉強した)。
私がいつも理解していないのは、割り込みハンドラーから(PC / IP)に戻る場所をどのように知るかです。
私が理解しているように:
- 割り込みはデバイス(キーボードなど)によって引き起こされます
- 関連するハンドラーは、実行中のプロセスの下で呼び出されます。つまり、OSへのコンテキストスイッチは実行されません。
- 割り込みハンドラーが終了し、実行中のアプリケーションに制御を戻します。
上記のプロセスは、割り込み処理についての私の理解であり、現在実行中のプロセスのコンテキスト内で実行されます。つまり、コンテキストスイッチではなく、メソッド呼び出しに似ています。
ただし、実際には割り込みハンドラーに対してCALLを実行しなかったため、現在のIPをスタックにプッシュする機会がありませんでした。
では、割り込みからジャンプして戻る場所をどのようにして知ることができますか。よくわかりません。
この質問に具体的に対処する優れたpdf/pptを単に指し示すワンライナーを含め、説明をいただければ幸いです。
[私は一般的にLinuxとCコードの下で上記のプロセスを参照していますが、すべての良い答えを歓迎します]