24531904_j
24531904_j 24531904_j
INT n/INTO/INT 3—Call to Interrupt Procedure ( 続き ) #SS( セレクタ ) SS レジスタがロード されよう としたとき、 指示先のセグ メ ン ト が存在しない と マ ー ク さ れていた場合。 リターン・アドレス、 フラグ、 エラー・コード、 スタッ ク ・ セグメン ト ・ ポインタ、 またはデータ ・ セグメン ト を プッシュして、 スタ ッ ク ・ セグメン ト の範囲を超えた場 合。 #NP( セレクタ ) コード ・セグメント、 割り込みゲート、 トラップ・ゲー ト、 タスク ・ゲート、 またはTSS が存在しない場合。 #TS( セレクタ ) TSS内のスタック・セグメント ・セレクタのRPL が、 割 り込みゲー ト または ト ラップ ・ゲー トによってアクセスさ れるコー ド ・ セグメン ト の DPL に等し く ない場合 TSS のスタック ・セグメント に対するスタック ・セグメン ト・ディスクリプタのDPL が、 割り 込みゲー ト ま たは ト ラップ・ゲートのコード ・セグメント ・ディスクリプタの DPL に等し く ない場合。 TSS 内のスタック・セグメント ・セレクタがNULL の場 合。 TSS のスタ ッ ク ・ セグメン ト が書き込み可能なデータ ・ セ グメン ト でない場合。 スタック ・セグメン トのセグメン ト ・セレクタ ・ インデッ ク スがデ ィ ス ク リ プ タ ・ テ ー ブルの範囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #BP INT 3 命令が実行 された場合。 #OF INTO 命令が実行 さ れ、 OF フ ラ グがセ ッ ト さ れた場合。 3:596 第 3 巻 : IA-32 基本命令リファレンス
INVD—Invalidate Internal Caches オペコード 命令 説明 0F 08 INVD 内部キャッシュをフラッシュする。外部キャッシュのフラッシュを 開始させる。 説明 プ ロ セ ッ サの内部キ ャ ッ シ ュ を無効化 ( フラッシュ ) し、 外部キ ャ ッ シ ュ に も 自身を フ ラ ッ シ ュ する よ う 指示する特殊機能バス ・ サイ ク ルを発行す る。 内部キ ャ ッ シ ュ に保持 されていたデータはメイン ・ メモリにライ トバッ クされない。 この命令を実行した後、 プロセッサは、 外部キャッシュのフラッシュ操作の完了を待た ずに命令の実行を継続する。 キ ャ ッ シ ュ ・ フ ラ ッ シ ュ信号への応答は、 ハー ド ウ ェ アに よって行う。 INVD 命令は特権命令であ る。 プ ロ セ ッ サが保護モー ド で動作してい る場合は、 こ の命 令を実行するには、 プログラムまたはプロシージャの CPL が 0 でなければならない。 こ の命令はプロセ ッサのモデルに も依存する。 今後のインテル ・ アーキテクチャ ・ プロ セ ッ サでは、 こ の命令の機能が異なる可能性がある。 こ の命令を使用する際は注意が必要であ る。 内部でキ ャ ッ シ ュ さ れ、 メ イ ン ・ メ モ リ に ライ トバックされないデータは失われる。 ( 例えば、 メ イン ・ メモ リ と のキ ャ ッ シ ュ ・ コ ヒ ーレンシが重要でないテス ト やフ ォル ト ・ リ カバ リ のよ う に ) 修正したキ ャ ッ シ ュ ・ ラ イ ン を ラ イ ト バ ッ ク しないでキ ャ ッ シ ュ を フ ラ ッ シ ュ する特別な必要性、 ま たは そ う するこ とに特別な利点がなければ、 ソフ ト ウェアには WBINVD 命令を使用すべ き であ る。 操作 IF Itanium System Environment THEN IA-32_Intercept(INST,INVD); Flush(InternalCaches); SignalFlush(ExternalCaches); Continue (* Continue execution); 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 IA-32_Intercept 強制命令イ ン タ ー セプ ト ・ フ ォ ル ト 。 保護モード例外 #GP(0) 現行特権レベルが 0 でない場合。 実アドレス・モード例外 なし。 仮想 8086 モード例外 #GP(0) INVD 命令は仮想 8086 モー ド で実行で き ない。 第 3 巻 : IA-32 基本命令リファレンス 3:597
- Seite 558 und 559: FSTSW/FNSTSW—Store Status Word (
- Seite 560 und 561: FSUB/FSUBP/FISUB—Subtract ( 続
- Seite 562 und 563: FSUBR/FSUBRP/FISUBR—Reverse Subtr
- Seite 564 und 565: FSUBR/FSUBRP/FISUBR—Reverse Subtr
- Seite 566 und 567: FTST—TEST オペコード 命令
- Seite 568 und 569: FUCOM/FUCOMP/FUCOMPP—Unordered Co
- Seite 570 und 571: FWAIT—Wait 本章の 「WAIT」
- Seite 572 und 573: FXAM—Examine ( 続き ) 実アド
- Seite 574 und 575: FXCH—Exchange Register Contents (
- Seite 576 und 577: FXTRACT—Extract Exponent and Sign
- Seite 578 und 579: FYL2X—Compute y ∗ log 2 x ( 続
- Seite 580 und 581: FYL2XP1—Compute y ∗ log 2 (x +1
- Seite 582 und 583: IDIV—Signed Divide オペコー
- Seite 584 und 585: IDIV—Signed Divide ( 続き ) 実
- Seite 586 und 587: IMUL—Signed Multiply ( 続き ) 2
- Seite 588 und 589: IMUL—Signed Multiply ( 続き )
- Seite 590 und 591: IN—Input from Port ( 続き ) 操
- Seite 592 und 593: INC—Increment by 1 オペコー
- Seite 594 und 595: INS/INSB/INSW/INSD—Input from Por
- Seite 596 und 597: INS/INSB/INSW/INSD—Input from Por
- Seite 598 und 599: INT n/INTO/INT 3—Call to Interrup
- Seite 600 und 601: INT n/INTO/INT 3—Call to Interrup
- Seite 602 und 603: INT n/INTO/INT 3—Call to Interrup
- Seite 604 und 605: INT n/INTO/INT 3—Call to Interrup
- Seite 606 und 607: INT n/INTO/INT 3—Call to Interrup
- Seite 610 und 611: INVD—Invalidate Internal Caches (
- Seite 612 und 613: IRET/IRETD—Interrupt Return オ
- Seite 614 und 615: IRET/IRETD—Interrupt Return ( 続
- Seite 616 und 617: IRET/IRETD—Interrupt Return ( 続
- Seite 618 und 619: IRET/IRETD—Interrupt Return ( 続
- Seite 620 und 621: Jcc—Jump if Condition Is Met オ
- Seite 622 und 623: Jcc—Jump if Condition Is Met (
- Seite 624 und 625: JMP—Jump オペコード 命令
- Seite 626 und 627: JMP—Jump ( 続き ) 操作 IF nea
- Seite 628 und 629: JMP—Jump ( 続き ) END; TASK-GAT
- Seite 630 und 631: JMP—Jump ( 続き ) #PF ( フォ
- Seite 632 und 633: JMPE—Jump to Intel ® Itanium ®
- Seite 634 und 635: LAR—Load Access Rights Byte オ
- Seite 636 und 637: LAR—Load Access Rights Byte ( 続
- Seite 638 und 639: LDS/LES/LFS/LGS/LSS—Load Far Poin
- Seite 640 und 641: LEA—Load Effective Address オペ
- Seite 642 und 643: LEAVE—High Level Procedure Exit
- Seite 644 und 645: LES—Load Full Pointer 「LDS/LES/
- Seite 646 und 647: LGDT/LIDT—Load Global/Interrupt D
- Seite 648 und 649: LGS—Load Full Pointer 「LDS/LES/
- Seite 650 und 651: LLDT—Load Local Descriptor Table
- Seite 652 und 653: LMSW—Load Machine Status Word オ
- Seite 654 und 655: LOCK—Assert LOCK# Signal Prefix
- Seite 656 und 657: LODS/LODSB/LODSW/LODSD—Load Strin
INVD—Invalidate Internal Caches<br />
オペコード 命令 説明<br />
0F 08 INVD 内部キャッシュをフラッシュする。外部キャッシュのフラッシュを<br />
開始させる。<br />
説明<br />
プ ロ セ ッ サの内部キ ャ ッ シ ュ を無効化 ( フラッシュ ) し、 外部キ ャ ッ シ ュ に も 自身を フ<br />
ラ ッ シ ュ する よ う 指示する特殊機能バス ・ サイ ク ルを発行す る。 内部キ ャ ッ シ ュ に保持<br />
されていたデータはメイン ・ メモリにライ トバッ クされない。<br />
この命令を実行した後、 プロセッサは、 外部キャッシュのフラッシュ操作の完了を待た<br />
ずに命令の実行を継続する。 キ ャ ッ シ ュ ・ フ ラ ッ シ ュ信号への応答は、 ハー ド ウ ェ アに<br />
よって行う。<br />
INVD 命令は特権命令であ る。 プ ロ セ ッ サが保護モー ド で動作してい る場合は、 こ の命<br />
令を実行するには、 プログラムまたはプロシージャの CPL が 0 でなければならない。 こ<br />
の命令はプロセ ッサのモデルに も依存する。 今後のインテル ・ アーキテクチャ ・ プロ<br />
セ ッ サでは、 こ の命令の機能が異なる可能性がある。<br />
こ の命令を使用する際は注意が必要であ る。 内部でキ ャ ッ シ ュ さ れ、 メ イ ン ・ メ モ リ に<br />
ライ トバックされないデータは失われる。 ( 例えば、 メ イン ・ メモ リ と のキ ャ ッ シ ュ ・ コ<br />
ヒ ーレンシが重要でないテス ト やフ ォル ト ・ リ カバ リ のよ う に ) 修正したキ ャ ッ シ ュ ・<br />
ラ イ ン を ラ イ ト バ ッ ク しないでキ ャ ッ シ ュ を フ ラ ッ シ ュ する特別な必要性、 ま たは そ う<br />
するこ とに特別な利点がなければ、 ソフ ト ウェアには WBINVD 命令を使用すべ き であ<br />
る。<br />
操作<br />
IF Itanium System Environment THEN IA-32_Intercept(INST,INVD);<br />
Flush(InternalCaches);<br />
SignalFlush(ExternalCaches);<br />
Continue (* Continue execution);<br />
影響を受けるフラグ<br />
なし。<br />
追加の Itanium ベース・システム環境例外<br />
IA-32_Intercept 強制命令イ ン タ ー セプ ト ・ フ ォ ル ト 。<br />
保護モード例外<br />
#GP(0) 現行特権レベルが 0 でない場合。<br />
実アドレス・モード例外<br />
なし。<br />
仮想 8086 モード例外<br />
#GP(0) INVD 命令は仮想 8086 モー ド で実行で き ない。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:597