24531904_j
24531904_j 24531904_j
WAIT/FWAIT—Wait オペコード 命令 説明 9B WAIT 未処理のマスクされていない浮動小数点例外をチェックする。 9B FWAIT 未処理のマスクされていない浮動小数点例外をチェックする。 説明 プ ロ セ ッ サは、 未処理のマス ク さ れていない浮動小数点例外がある かチ ェ ッ ク し、 あれ ば処理してから先に進む。 (FWAIT は、 WAIT の代替ニーモニ ッ クである。 ) こ の命令は、 コ ー ド の重要な部分で例外を同期さ せる ために有用である。 浮動小数点命 令の後に WAIT 命令を入れる と 、 こ の命令が発生さ せ る可能性があ る マス ク さ れていな い浮動小数点例外があれば、 プ ロ セ ッ サは それら を処理してか ら 命令の結果を修正で き ることが保証される。 操作 CheckPendingUnmaskedFloatingPointExceptions; FPU 影響を受けるフラグ C0、 C1、 C2、 および C3 フ ラ グは未定義。 浮動小数点例外 なし。 保護モード例外 #NM CR0 の MP および TS がセ ッ ト さ れた場合。 実アドレス・モード例外 #NM CR0 の MP および TS がセ ッ ト さ れた場合。 仮想 8086 モード例外 #NM CR0 の MP および TS がセ ッ ト さ れた場合。 3:768 第 3 巻 : IA-32 基本命令リファレンス
WBINVD—Write Back and Invalidate Cache オペコード 命令 説明 0F 09 WBINVD ライトバックして内部キャッシュをフラッシュする。外部キャッ シュのライトバックとフラッシュを開始させる。 説明 プ ロ セ ッ サの内部キ ャ ッ シ ュ で修正 さ れている すべてのキ ャ ッ シ ュ ・ ラ イ ン を メ イ ン ・ メ モ リ に ラ イ ト バ ッ ク し、 内部キ ャ ッ シ ュ を無効化 ( フラッシュ ) する。 その後、 外部 キ ャ ッ シ ュ に も 、 修正されている デー タ を ラ イ ト バ ッ ク する よ う 指示する特殊機能バ ス・サイクルを発行する。 この命令を実行した後、 プロセッサは、 外部キャッシュのライ トバック操作とフラッ シ ュ操作の完了を待たずに、 命令の実行を継続する。 キ ャ ッ シ ュ ・ ラ イ ト バ ッ ク信号お よびキャッシュ ・フラッシュ信号に応答することは、 ハードウェアによって行う。 WBINVD 命令は特権命令である。 プロセ ッ サが保護モー ド で動作している場合は、 この 命令を実行するには、 プログラムまたはプロシージャの CPL が 0 でなければならない。 こ の命令は シ リ アル化命令で も ある。 メイン ・ メモ リ とのキャ ッ シュ ・ コ ヒ ー レンシが重要でない場合は、 ソフ ト ウ ェアは INVD 命令を使用で き る。 操作 IF Itanium System Environment THEN IA-32_Intercept(INST,WBINVD); WriteBack(InternalCaches); Flush(InternalCaches); SignalWriteBack(ExternalCaches); SignalFlush(ExternalCaches); Continue (* Continue execution); 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 IA-32_Intercept 強制命令イ ン タ ー セプ ト 。 保護モード例外 #GP(0) 現行特権レベルが 0 でない場合。 実アドレス・モード例外 なし。 仮想 8086 モード例外 #GP(0) WBINVD 命令は仮想 8086 モー ドで実行するこ とはできな い。 第 3 巻 : IA-32 基本命令リファレンス 3:769
- Seite 730 und 731: RET—Return from Procedure ( 続
- Seite 732 und 733: RET—Return from Procedure ( 続
- Seite 734 und 735: ROL/ROR—Rotate 「RCL/RCR/ROL/ROR
- Seite 736 und 737: SAHF—Store AH into Flags オペ
- Seite 738 und 739: SAL/SAR/SHL/SHR—Shift ( 続き )
- Seite 740 und 741: SAL/SAR/SHL/SHR—Shift ( 続き )
- Seite 742 und 743: SBB—Integer Subtraction with Borr
- Seite 744 und 745: SCAS/SCASB/SCASW/SCASD—Scan Strin
- Seite 746 und 747: SETcc—Set Byte on Condition オ
- Seite 748 und 749: SETcc—Set Byte on Condition ( 続
- Seite 750 und 751: SGDT/SIDT—Store Global/Interrupt
- Seite 752 und 753: SHLD—Double Precision Shift Left
- Seite 754 und 755: SHLD—Double Precision Shift Left
- Seite 756 und 757: SHRD—Double Precision Shift Right
- Seite 758 und 759: SIDT—Store Interrupt Descriptor T
- Seite 760 und 761: SLDT—Store Local Descriptor Table
- Seite 762 und 763: SMSW—Store Machine Status Word (
- Seite 764 und 765: STD—Set Direction Flag オペコ
- Seite 766 und 767: STI—Set Interrupt Flag ( 続き )
- Seite 768 und 769: STOS/STOSB/STOSW/STOSD—Store Stri
- Seite 770 und 771: STOS/STOSB/STOSW/STOSD—Store Stri
- Seite 772 und 773: STR—Store Task Register ( 続き
- Seite 774 und 775: SUB—Subtract ( 続き ) 保護モ
- Seite 776 und 777: TEST—Logical Compare ( 続き )
- Seite 778 und 779: VERR, VERW—Verify a Segment for R
- Seite 782 und 783: WBINVD—Write Back and Invalidate
- Seite 784 und 785: WRMSR—Write to Model Specific Reg
- Seite 786 und 787: XADD—Exchange and Add ( 続き )
- Seite 788 und 789: XCHG—Exchange Register/Memory wit
- Seite 790 und 791: XLAT/XLATB—Table Look-up Translat
- Seite 792 und 793: XOR—Logical Exclusive OR ( 続き
- Seite 794 und 795: EMMS—Empty MMX State オペコー
- Seite 796 und 797: MOVD—Move 32 Bits ( 続き ) 追
- Seite 798 und 799: MOVQ—Move 64 Bits オペコード
- Seite 800 und 801: PACKSSWB/PACKSSDW—Pack with Signe
- Seite 802 und 803: PACKSSWB/PACKSSDW—Pack with Signe
- Seite 804 und 805: PACKUSWB—Pack with Unsigned Satur
- Seite 806 und 807: PADDB/PADDW/PADDD—Packed Add (
- Seite 808 und 809: PADDSB/PADDSW—Packed Add with Sat
- Seite 810 und 811: PADDSB/PADDSW—Packed Add with Sat
- Seite 812 und 813: PADDUSB/PADDUSW—Packed Add Unsign
- Seite 814 und 815: PAND—Logical AND オペコード
- Seite 816 und 817: PANDN—Logical AND NOT オペコ
- Seite 818 und 819: PCMPEQB/PCMPEQW/PCMPEQD—Packed Co
- Seite 820 und 821: PCMPEQB/PCMPEQW/PCMPEQD—Packed Co
- Seite 822 und 823: PCMPGTB/PCMPGTW/PCMPGTD—Packed Co
- Seite 824 und 825: PMADDWD—Packed Multiply and Add
- Seite 826 und 827: PMULHW—Packed Multiply High オ
- Seite 828 und 829: PMULLW—Packed Multiply Low オペ
WBINVD—Write Back and Invalidate Cache<br />
オペコード 命令 説明<br />
0F 09 WBINVD ライトバックして内部キャッシュをフラッシュする。外部キャッ<br />
シュのライトバックとフラッシュを開始させる。<br />
説明<br />
プ ロ セ ッ サの内部キ ャ ッ シ ュ で修正 さ れている すべてのキ ャ ッ シ ュ ・ ラ イ ン を メ イ ン ・<br />
メ モ リ に ラ イ ト バ ッ ク し、 内部キ ャ ッ シ ュ を無効化 ( フラッシュ ) する。 その後、 外部<br />
キ ャ ッ シ ュ に も 、 修正されている デー タ を ラ イ ト バ ッ ク する よ う 指示する特殊機能バ<br />
ス・サイクルを発行する。<br />
この命令を実行した後、 プロセッサは、 外部キャッシュのライ トバック操作とフラッ<br />
シ ュ操作の完了を待たずに、 命令の実行を継続する。 キ ャ ッ シ ュ ・ ラ イ ト バ ッ ク信号お<br />
よびキャッシュ ・フラッシュ信号に応答することは、 ハードウェアによって行う。<br />
WBINVD 命令は特権命令である。 プロセ ッ サが保護モー ド で動作している場合は、 この<br />
命令を実行するには、 プログラムまたはプロシージャの CPL が 0 でなければならない。<br />
こ の命令は シ リ アル化命令で も ある。<br />
メイン ・ メモ リ とのキャ ッ シュ ・ コ ヒ ー レンシが重要でない場合は、 ソフ ト ウ ェアは<br />
INVD 命令を使用で き る。<br />
操作<br />
IF Itanium System Environment THEN IA-32_Intercept(INST,WBINVD);<br />
WriteBack(InternalCaches);<br />
Flush(InternalCaches);<br />
SignalWriteBack(ExternalCaches);<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) WBINVD 命令は仮想 8086 モー ドで実行するこ とはできな<br />
い。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:769