回答編集履歴
1
far jump である理由を追加
answer
CHANGED
@@ -4,4 +4,5 @@
|
|
4
4
|
|
5
5
|
が、CPU はパイプライン(命令プリフェッチキュー)を持っているため、protected mode に移行する前にプリフェッチされた命令群は、リアルモードの CS のつもりで動作しようとしてしまいます。既に GDT に切り替わっているのに、です。当然うまく動いてくれません。
|
6
6
|
かといって protected mode に移行する前に CS を書き換えてもダメです(そうしたらそのあとの命令がうまく動かない)。
|
7
|
-
これを回避するために、キューをクリアするための方法として far jump を使うというテクニックなのです。
|
7
|
+
これを回避するために、キューをクリアするための方法として far jump を使うというテクニックなのです。
|
8
|
+
※far jump は同時に CS を変更できる(GDTのロードも同時に行える)ので推奨されています
|