OSを作ろうpart12at OSOSを作ろうpart12 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト259:ぴゅあ 06/09/17 01:40:24 >>257 >3)タイマー割り込みのハンドラでVMビットをONしてリアルモードの割り込み > ヴェクタをスタックに設定してIRETします。 この部分。タイマ割り込みを使って実験の状態を作っているのだと思いますけど、 ここのIRETは以前書かれていた"VMが1のまま"となるというのは …VMビットに触れないので仮想86モードのままのIRET インテルのマニュアルにもある通りでしょう。 例えばこのIRETの前に (別の)割り込みを呼んでVM=0,IRET(オペランドは32bitとする)の後、 …プロテクトモードでのIRET 先のIRETが呼ばれるのだと …VM=0とされた状態でのIRET 期待通りになるんでしょう。 260:崎本 06/09/17 05:16:21 仮想86モードにIRETする前にTSSのESPは再設定してるかね? 261:Be名無しさん 06/09/17 12:05:23 >>260 よく理解はしていないですが 取り合えず、リング0のEPSは設定しています 262:Be名無しさん 06/09/17 12:11:46 >>259 以前、心当たりが有ると書いたのは 割り込みのIRET時の戻り先に#UDを発生させる関数を設定して VMビットをクリアーでいいのかなっと思ってます。 ただ、IRETで例外が発生すると思っていたので上記の処理はしてませんでした。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch