24531904_j
24531904_j 24531904_j
WBINVD—Write Back and Invalidate Cache ( 続き ) インテル・アーキテクチャにおける互換性 WDINVD 命令はプ ロ セ ッ サに依存し、 その機能は将来の イ ン テル ・ アー キ テ ク チ ャ ・ プ ロ セ ッ サでは異な っ てサポ ー ト さ れる可能性 も ある。 こ の命令は、 Intel486 プロセッサよ り以前のインテル ・ アーキテクチャ ・ プロセッサではサポー ト されていない。 3:770 第 3 巻 : IA-32 基本命令リファレンス
WRMSR—Write to Model Specific Register オペコード 命令 説明 0F 30 WRMSR EDX:EAX の値を ECX で指定される MSR に書き込む。 説明 レジスタ EDX:EAX の内容を ECX レジスタで指定された64 ビッ トのモデル固有レジス タ (MSR) に書き込む。 上位 32 ビッ トがEDX か ら コ ピ ー さ れ、 下位 32 ビットがEAX か らコピーされる。 MSR の未定義ビ ッ ト ま たは予約ビ ッ ト は、 常に以前に読み取 ら れてい る値に設定される。 WRMSR 命令は、 特権レベル 0 または実アドレス ・モー ドで実行しなければならない。 そ う しない と 、 一般保護例外 #GP(0) が生成される。 予約されているかまたは定義されて いない MSR アドレスをECX に指定して も 、 一般保護例外が生成 さ れる。 WRMSR 命令を使用して MTRR に書き込む と、 グロ ーバル ・ エン ト リ を含めて TLB が 無効化 さ れる。 詳細は 『IA-32 インテル ® アーキテクチャ ・ ソフ ト ウェア ・ ディベロッ パーズ ・ マニュアル、 下巻』 第3 章を参照のこ と。 MSR は、 テ ス ト 機能、 実行 ト レ ー ス、 性能モニ タ リ ン グ、 マシ ン ・ チ ェ ッ ク ・ エ ラ ー の 機能を制御す る。 こ の命令で書き込みがで き る すべての MSR と、 各MSR のア ド レスに ついては、 モデル固有命令を参照の こ と 。 WRMSR 命令は シ リ アル化命令であ る。 この命令を使用する前に、 CPUID 命令を使用して MSR がサポー ト されている (EDX[5]=1) かど う かを確認する必要がある。 操作 IF Itanium System Environment THEN IA-32_Intercept(INST,WRMSR); MSR[ECX] ← EDX:EAX; 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 IA-32_Intercept 強制命令イ ン タ ー セプ ト 。 保護モード例外 #GP(0) 現行特権レベルが 0 でない場合。 ECX の値が予約されているかまたは定義されていない MSR アドレスを指定している場合。 実アドレス・モード例外 #GP 現行特権レベルが 0 でない場合。 ECX の値が予約されているかまたは定義されていない MSR アドレスを指定している場合。 第 3 巻 : IA-32 基本命令リファレンス 3:771
- 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 780 und 781: WAIT/FWAIT—Wait オペコード
- 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 オペ
- Seite 830 und 831: POR—Bitwise Logical OR オペコ
WRMSR—Write to Model Specific Register<br />
オペコード 命令 説明<br />
0F 30 WRMSR EDX:EAX の値を ECX で指定される MSR に書き込む。<br />
説明<br />
レジスタ EDX:EAX の内容を ECX レジスタで指定された64 ビッ トのモデル固有レジス<br />
タ (MSR) に書き込む。 上位 32 ビッ トがEDX か ら コ ピ ー さ れ、 下位 32 ビットがEAX か<br />
らコピーされる。 MSR の未定義ビ ッ ト ま たは予約ビ ッ ト は、 常に以前に読み取 ら れてい<br />
る値に設定される。<br />
WRMSR 命令は、 特権レベル 0 または実アドレス ・モー ドで実行しなければならない。<br />
そ う しない と 、 一般保護例外 #GP(0) が生成される。 予約されているかまたは定義されて<br />
いない MSR アドレスをECX に指定して も 、 一般保護例外が生成 さ れる。<br />
WRMSR 命令を使用して MTRR に書き込む と、 グロ ーバル ・ エン ト リ を含めて TLB が<br />
無効化 さ れる。 詳細は 『IA-32 インテル ® アーキテクチャ ・ ソフ ト ウェア ・ ディベロッ<br />
パーズ ・ マニュアル、 下巻』 第3 章を参照のこ と。<br />
MSR は、 テ ス ト 機能、 実行 ト レ ー ス、 性能モニ タ リ ン グ、 マシ ン ・ チ ェ ッ ク ・ エ ラ ー の<br />
機能を制御す る。 こ の命令で書き込みがで き る すべての MSR と、 各MSR のア ド レスに<br />
ついては、 モデル固有命令を参照の こ と 。<br />
WRMSR 命令は シ リ アル化命令であ る。<br />
この命令を使用する前に、 CPUID 命令を使用して MSR がサポー ト されている<br />
(EDX[5]=1) かど う かを確認する必要がある。<br />
操作<br />
IF Itanium System Environment THEN IA-32_Intercept(INST,WRMSR);<br />
MSR[ECX] ← EDX:EAX;<br />
影響を受けるフラグ<br />
なし。<br />
追加の Itanium ベース・システム環境例外<br />
IA-32_Intercept 強制命令イ ン タ ー セプ ト 。<br />
保護モード例外<br />
#GP(0) 現行特権レベルが 0 でない場合。<br />
ECX の値が予約されているかまたは定義されていない<br />
MSR アドレスを指定している場合。<br />
実アドレス・モード例外<br />
#GP 現行特権レベルが 0 でない場合。<br />
ECX の値が予約されているかまたは定義されていない<br />
MSR アドレスを指定している場合。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:771