3

eip レジスタは 32 ビットで、新しい命令ごとにインクリメントされます。では、32 ビット数の最大値 4294967295 に達するとどうなるでしょうか。

4

1 に答える 1

6

通常、それが起こらないようにします。%eip は無条件に増加しません。jmpフロー制御命令 ( 、callbccなど)の影響を受けます。

実際には、この動作は予測できません。一部の CPU では、%eip のオーバーフローによって障害が発生します。他のいくつかでは、静かにゼロに戻ります。

これらの不一致は、(元の) Xbox ブート ROM の有名なエクスプロイトにつながりました。開発キットは AMD CPU (ラップアラウンドで障害が発生) を使用していましたが、製品ハードウェアは Intel CPU を使用していました (これは発生しませんでした)。詳細については、「Xbox のハッキング: リバース エンジニアリングの概要」、約 140 ページを参照してください。

于 2014-12-26T08:22:52.357 に答える