インテルマニュアルが正規のアドレスと一般保護例外については、次の言う:非正規のリニアアドレスと一般保護例外
(第1巻、Pgの3-13。)から:
「場合一般的な保護例外(#GP)が生成されます。... "
From(Vol 3A、Pg。6)のリニアメモリリファレンスは標準形式ではありません。 -52):
"次の条件では、64ビットモードで一般保護例外が発生します。
- メモリアドレスが非正規形式の場合。
- セグメント記述子のメモリアドレスが非正規形式の場合。 ...」
私はRIPの内容もとして分類されているかどうかを知って興味を持って 『上記の引用で述べたように、メモリアドレス』。それとも、RIPを含めることができる場合でありますRIPは、メモリ内の位置を参照するために使用されるまで非正規のアドレスではなく#GPが発生しないのだろうか?
[EDIT]
は、私が今より慎重にマニュアルを読んで、特にCALL、RET、JMP命令の擬似コード(libe RIPを変更するrty)。私は、64ビットモードでは、RIPに格納される前にアドレスの正規化チェックが行われ、その結果、RIPが非正規アドレスを取得する前に#GPが生成されることに気付きました。だから、私の質問への答えは、RIPは決して非正規のアドレスを含むことができないということです。
私は心配していましたが、非正規アドレスを含むRIPがメモリ位置を参照するために使用されるため、#GPが発生します---全く発生しません。
もちろん、プロセッサがRIPアドレスでマシン命令を読み取ることができない場合は何も起こりません。 –
はい、間違いありません。しかし、今のところ私は、プロセッサがRIPによって参照されるアドレスの命令を読み取ることができないことを心配していません。 RIP自体の内容_とそれに関連する例外は現在私の懸念事項です。 – shigoel