24531904_j
24531904_j 24531904_j
SLDT—Store Local Descriptor Table Register ( 続き ) 実アドレス・モード例外 #UD SLDT 命令は実ア ド レ ス ・ モ ー ド では認識 さ れない。 仮想 8086 モード例外 #UD SLDT 命令は仮想 8086 モー ドでは認識されない。 3:748 第 3 巻 : IA-32 基本命令リファレンス
SMSW—Store Machine Status Word オペコード 命令 説明 0F 01 /4 SMSW r32/m16 マシン・ステータス・ワードを r32 の下位 16 ビットまたは m16 に ストアし、r32 の上位 16 ビットは未定義である。 説明 マシン・ステータス・ワード ( 制御レ ジ ス タ CR0 のビッ ト 0 ~ 15) をデステ ィ ネーシ ョ ン・オペランドにストアする。 デスティネーション・オペランドには、 16 ビッ トの汎用 レジスタまたはメモリ ・ ロケーションを使用できる。 デステ ィ ネーシ ョ ン ・ オペラン ドが 32 ビッ ト ・レジスタであるときは、 CR0 レジスタの 下位 16 ビットがレジスタの下位16 ビ ッ ト に コ ピ ー さ れ、 レ ジ ス タ の上位 16 ビッ トは未 定義であ る。 デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド が メ モ リ ・ ロ ケ ー シ ョ ンである と き は、 オペラン ド ・ サイズに関係な く 、 CR0 レジスタの下位16 ビッ トが16 ビッ ト幅でメモリ に書き込まれる。 SMSW 命令は、 オペレーティング ・ システム・ ソフ ト ウェアだけに有用であるが、 特権 命令ではな く 、 アプ リ ケ ー シ ョ ン ・ プ ロ グ ラ ムで使用で き る。 この命令は、 インテル 286 プロセッサとの互換性を保つために設けられたものである。 インテル 286 よ り新しいプロセッサ向けに開発されるプログラムおよびプロシージ ャで は、 MOV( コント ロール・ レジスタ ) 命令を使用してマシ ン ・ ステ ー タ ス ・ ワ ー ド を ロードすることを推奨する。 操作 IF Itanium System Environment THEN IA-32_Intercept(INST,SMSW); DEST ← CR0[15:0]; (* MachineStatusWord *); 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 IA-32_Intercept 強制命令イ ン タ ー セプ ト 。 保護モード例外 #GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある 場合。 メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 DS、 ES、 FS、 GS レジスタを使用してメモ リ がアクセス さ れ、 レ ジ ス タ の内容が NULL セグメン ト ・ セレク タで あった場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが イネーブルにされていて、 アライメントが合わないメモリ 参照が行われた場合。 第 3 巻 : IA-32 基本命令リファレンス 3:749
- Seite 710 und 711: PUSH—Push Word or Doubleword onto
- Seite 712 und 713: PUSHA/PUSHAD—Push All General-Pur
- Seite 714 und 715: PUSHF/PUSHFD—Push EFLAGS Register
- Seite 716 und 717: RCL/RCR/ROL/ROR-—Rotate ( 続き
- Seite 718 und 719: RCL/RCR/ROL/ROR-—Rotate ( 続き
- Seite 720 und 721: RDMSR—Read from Model Specific Re
- Seite 722 und 723: RDPMC—Read Performance-Monitoring
- Seite 724 und 725: RDTSC—Read Time-Stamp Counter (
- Seite 726 und 727: REP/REPE/REPZ/REPNE /REPNZ—Repeat
- Seite 728 und 729: RET—Return from Procedure オペ
- 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 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 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
SMSW—Store Machine Status Word<br />
オペコード 命令 説明<br />
0F 01 /4 SMSW r32/m16 マシン・ステータス・ワードを r32 の下位 16 ビットまたは m16 に<br />
ストアし、r32 の上位 16 ビットは未定義である。<br />
説明<br />
マシン・ステータス・ワード ( 制御レ ジ ス タ CR0 のビッ ト 0 ~ 15) をデステ ィ ネーシ ョ<br />
ン・オペランドにストアする。 デスティネーション・オペランドには、 16 ビッ トの汎用<br />
レジスタまたはメモリ ・ ロケーションを使用できる。<br />
デステ ィ ネーシ ョ ン ・ オペラン ドが 32 ビッ ト ・レジスタであるときは、 CR0 レジスタの<br />
下位 16 ビットがレジスタの下位16 ビ ッ ト に コ ピ ー さ れ、 レ ジ ス タ の上位 16 ビッ トは未<br />
定義であ る。 デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド が メ モ リ ・ ロ ケ ー シ ョ ンである と き は、<br />
オペラン ド ・ サイズに関係な く 、 CR0 レジスタの下位16 ビッ トが16 ビッ ト幅でメモリ<br />
に書き込まれる。<br />
SMSW 命令は、 オペレーティング ・ システム・ ソフ ト ウェアだけに有用であるが、 特権<br />
命令ではな く 、 アプ リ ケ ー シ ョ ン ・ プ ロ グ ラ ムで使用で き る。<br />
この命令は、 インテル 286 プロセッサとの互換性を保つために設けられたものである。<br />
インテル 286 よ り新しいプロセッサ向けに開発されるプログラムおよびプロシージ ャで<br />
は、 MOV( コント ロール・ レジスタ ) 命令を使用してマシ ン ・ ステ ー タ ス ・ ワ ー ド を<br />
ロードすることを推奨する。<br />
操作<br />
IF Itanium System Environment THEN IA-32_Intercept(INST,SMSW);<br />
DEST ← CR0[15:0]; (* MachineStatusWord *);<br />
影響を受けるフラグ<br />
なし。<br />
追加の Itanium ベース・システム環境例外<br />
IA-32_Intercept 強制命令イ ン タ ー セプ ト 。<br />
保護モード例外<br />
#GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある<br />
場合。<br />
メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
DS、 ES、 FS、 GS レジスタを使用してメモ リ がアクセス<br />
さ れ、 レ ジ ス タ の内容が NULL セグメン ト ・ セレク タで<br />
あった場合。<br />
#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />
囲外の場合。<br />
#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />
#AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが<br />
イネーブルにされていて、 アライメントが合わないメモリ<br />
参照が行われた場合。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:749