アセンブリ言語無効命令エラーの概要
問題:cmpxchg 8 bコマンドは、1つの8バイトの値edxとEAXを比較し、8バイトの値メモリ(宛先操作数)を持つ。このコマンドは有効なターゲットの操作数だけメモリの操作数です。ターゲット動作数が1つのレジスタプロセッサである場合、無効なOpCode例外を生成し、実行されるコマンドcmpxchg 8 bは、無効なOpCode異常処理プログラムを停止し、プロセッサが実行すべきである。このエラーは、ロックプレフィックスがcmpxchg 8 b命令と1つの(無効)レジスタの宛先操作数を使用するために発生します。この場合、プロセッサは、バスがロックされているので、無効なOpCode異常処理プログラムの実行を開始できないかもしれない。これはシステムがマウントされる原因になります。ヒント:もし(無効)レジスタ宛先が動作するなら、cmpxchg 8 b命令とプレフィックスロックを使用して、システムが保留されるかもしれない。メモリデータが壊れていないので、ユーザはシステムリセットを実行して正常な動作に戻ります。特定の無効コードシーケンスが必要です。このエラーは通常生成されません。このコースのプログラミングもこのようなシーケンスココアではありません。このエラーは奔騰プロセッサ、奔騰プロセッサとMMX技術、奔騰OverDriveプロセッサと奔騰OverDriveプロセッサにのみ適用されます。MMX技術があります。Pentium Proプロセッサ、Pentium IIプロセッサおよびi 486およびより早いバージョンのプロセッサは影響を受けない。このエラーはモード操作システムを保護するための二つの方法があります。つのページエラーを生成します。無効なOpCodeの例外状況です。上記の二例では、ページエラーは修理前にOpCodeを無効にし、ロック状態の発生を防止します。実施の詳細は、オペレーティングシステムによって異なります。以下の方法の1つを使用して、第1の部分の解決方法セットの第1の7つのエントリ(0−6)は、非書込みページに記述情報テーブル(IDT)を中断する。無効なOpCode異常(異常6)が発生した理由は、cmpxchg 8 b命令帯域をロックして無効登録先を指定したからです。その後、プロセッサはページエラーを生成します。このページに書き込みがない場合は、エントリ6を含むIDTにアクセスします。ページエラー処理プログラムの認識と正確なスケジュールを変更する第二部分は、この解決方法で「無効OpCode例外状況」となります。ウィジェットI、IDTページアクセスフラグページに含まれる最初の7つの項目(0-6)のIDTは、ビット1を設定するページ項目のみがゼロです。cr 0.wp(16ビット)を1に設定することもできます。現在、「無効OpCode異常がロックcmpxchg 8 bコマンドを発生すると、プロセッサはページエラーをトリガします。このページにはエントリ6を含むIDTに書き込みがないためです。このページのエラーは、バスロック状態を阻止し、オペレーティングシステムに完全制御プロセス「無効操作異常」を与えます。例外6は無効OpCode例外ですので、この図のOSとは完全に制御されている任意のプログラムが無効cmpxchg 8 bコマンドを実行します。オプション:更新項目7-255のIDTがレッスンで正常に動作している場合、ページエラーはこれらのIDTエントリの書き込みを避けるべきです。これらのページエラーは、1つの4 KBページ境界を越える(例えば、最初の7つのエントリ(0−6)IDTが、最初の読み取り専用の「ページと」の残りのエントリでページを読む/書くことを避けることができる。第II、ページエラー処理プログラムは、ページサイズを変更して、どの異常が発生したかを計算します。ページのエラーによる容量アドレスの使用をcr 2とします。エラーコードスタック上に異常が発生したと表示されている場合は、ダンベル0とアドレスが無効OpCode例外に対応している場合は、ポップアップされたエラーコードはスタックを閉じ、「無効OpCode異常処理プログラム」にジャンプします。正常ページエラー処理プログラムを継続します。あるいは解決策には二つの部分があります。まず、説明情報テーブル(IDT)の配置を中断する(例えば、無効なOpCode異常はページエラーを引き起こす(ページが存在しないため)。第二に、ページエラー処理プログラムの日付認識と正確なスケジュールは、「無効OpCode異常とその他のいくつかの例外があります。コンポーネントI、IDT較正:中断記述情報テーブル(IDT)を整列させ、4 KBページ境界を超えて、第1の起動56バイトを最終的な第1の4 KB「ページ」から開始する。これは、最初の7つの項目(0-6)を、最初の4 KBの「ページと残りの項目」の2ページに配置します。このページに含まれるヘッダ7の項目IDTは、OSページテーブルにマッピングされていません。これは、例外のいずれかの0-6が、ページに障害がないように生成されることになる。一つのページエラーはバスロック状態を阻止し、オペレーティングシステムに完全制御プロセスの異常を与える。例外6は無効OpCode例外ですので、この図のOSとは完全に制御されている任意のプログラムが無効cmpxchg 8 bコマンドを実行します。第II、ページエラー処理プログラムの修正:アクセス先を識別する第1ページIDTは、テストのアドレスcr 2に通過する。ページに故障がないので、他の住所で正常に処理できます。ページに障害がないため、1ページ目のIDTは、オペレーティングシステムが認識して送信しなければならない。継続する前に、アドレス範囲に対応する例外事例0−6にあるかどうかを決定するために、障害アドレスをテストする。どの異常を計算するかによって、このページには障害のない従容アドレスcr 2が存在する。オペレーティングシステムによっては、いくつかの権限レベルのチェックが要求され、中断スタックを調整することができます。正常処理プログラムに移行するのは適切な異常です。二つの融通方法は、インテルプロセッサがfamilyに戻る=5を実現するだけでCPU IDコマンドを通過する。