アセンブラ… (°Д°)ハァ?
■ このスレッドは過去ログ倉庫に格納されています
0607ε=( ̄。 ̄)yー~~
NGNG>604の「所々勘違いがあるようですね。」の部分をずばりしてきたか・・・。
確かに、ブルーバック画面を出すのはCPUな訳は無い品。
例外エラーのルーチンに持ってく処理は、x86だが、処理コードはBIOSもしくはOSだな。
それぞれ、リアルモード、プロテクトモードで違ってくる。
もっと突っ込むと、そもそも例外も含め割り込みは、例えば、例外では、
例外でOSがINT×(番号忘れた)を出したり、CPU内部エラーでINT×をCPU内部で生ずると、
割込みフラグレジスタにフラグを立てる、その値と割込み許不のマスクレジスタのANDを採り、
IDTR(割込みディスクリプタテーブルレジスタ)の一部(上位か下位か忘れた)に入れる。
IDTRの値のアドレスを検索、すなはち、割込みベクタテーブルアドレスの内容を引きにいく、
ベクタテーブルの内容をアドレスとして、割込み・例外処理ルーチンに飛ぶ。
そのルーチンには、ブルーバック画面のコードが書かれている。
IDTRで値を入れてない部分の値は、リアルモード、プロテクトモードで違ってくる。
すると、引きに行く割込みベクタテーブルアドレスが違ってくる。
すなはち、リアルモードとOSによる例外のプロテクトモードでは、見る割り込みベクタテーブルも割込み処理ルーチンも違ってくるということだわな。
リアルモードでは、割込みベクタテーブルは0番地〜(BIOS上)にあり、割込みルーチンは、おそらくBIOS上(或いは640kバイト内にあるかもしれない)、
主にOSが行うプロテクトモードでの例外は、割込みベクタテーブルも割込みルーチンも1M以降のメモリ空間にある。
この意味では、違ってるな。
>603
「所々勘違い」と書いているからには、まだあるということか?
どこだ?
■ このスレッドは過去ログ倉庫に格納されています