24531904_j
24531904_j 24531904_j
WRMSR—Write to Model Specific Register ( 続き ) 仮想 8086 モード例外 #GP(0) WRMSR 命令は仮想 8086 モー ドでは認識されない。 インテル・アーキテクチャにおける互換性 MSR 命令お よ び WRMSR 命令でそれ ら を読み取る機能は、 Pentium プロセッサで インテル ・ アーキテクチャに導入された。 Pentium プロセッサよ り以前のインテル ・ アー キテ ク チ ャ ・ プ ロ セ ッ サで こ の命令を実行する と 、 無効オペ コ ー ド 例外 #UD が生成され る。 3:772 第 3 巻 : IA-32 基本命令リファレンス
XADD—Exchange and Add オペコード 命令 説明 0F C0/r XADD r/m8,r8 r8 を r/m8 と交換し、合計を r/m8 にロードする。 0F C1/r XADD r/m16,r16 r16 を r/m16 と交換し、合計を r/m16 にロードする。 0F C1/r XADD r/m32,r32 r32 を r/m32 と交換し、合計を r/m32 にロードする。 説明 第 1 オペラン ド ( デステ ィ ネーシ ョ ン ・ オペラン ド ) を第 2 オペラン ド ( ソース ・ オペラ ンド ) と交換し、 次に 2 つの値の合計をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に ロ ー ド す る。 デスティネーション ・ オペランドには、 レジスタまたはメモリ ・ ロケーションを使用で きる。 ソース・オペランドは、 レジスタである。 この命令は、 LOCK プリフィックスとともに使用することができる。 操作 IF Itanium System Environment AND External_Bus_Lock_Required AND DCR.lc THEN IA-32_Intercept(LOCK,XADD); TEMP ← SRC + DEST SRC ← DEST DEST ← TEMP 影響を受けるフラグ CF、 PF、 AF、 SF、 ZF、 OF フラグが、 デスティネーションにストアされる結果に従って 設定 さ れる。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 IA-32_Intercept ロック・インターセプト - DCR.lc が 1 であ り 、 こ の操作を 完了するために外部ア ト ミ ッ ク ・ バス ・ ロ ッ ク が必要であ る場合は、 ア ト ミ ッ ク ・ ト ランザクシ ョ ンは発生せず、 こ の命令は失敗し、 IA-32_Intercept(Lock) フォルトが発生す る。 ソフ ト ウェア ・ ロ ッ ク ・ ハン ド ラが、 この命令をエ ミュレートする責任を負う。 第 3 巻 : IA-32 基本命令リファレンス 3:773
- 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 782 und 783: WBINVD—Write Back and Invalidate
- 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 オペコ
- Seite 832 und 833: PSLLW/PSLLD/PSLLQ—Packed Shift Le
XADD—Exchange and Add<br />
オペコード 命令 説明<br />
0F C0/r XADD r/m8,r8 r8 を r/m8 と交換し、合計を r/m8 にロードする。<br />
0F C1/r XADD r/m16,r16 r16 を r/m16 と交換し、合計を r/m16 にロードする。<br />
0F C1/r XADD r/m32,r32 r32 を r/m32 と交換し、合計を r/m32 にロードする。<br />
説明<br />
第 1 オペラン ド ( デステ ィ ネーシ ョ ン ・ オペラン ド ) を第 2 オペラン ド ( ソース ・ オペラ<br />
ンド ) と交換し、 次に 2 つの値の合計をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に ロ ー ド す る。<br />
デスティネーション ・ オペランドには、 レジスタまたはメモリ ・ ロケーションを使用で<br />
きる。 ソース・オペランドは、 レジスタである。<br />
この命令は、 LOCK プリフィックスとともに使用することができる。<br />
操作<br />
IF Itanium System Environment AND External_Bus_Lock_Required AND DCR.lc<br />
THEN IA-32_Intercept(LOCK,XADD);<br />
TEMP ← SRC + DEST<br />
SRC ← DEST<br />
DEST ← TEMP<br />
影響を受けるフラグ<br />
CF、 PF、 AF、 SF、 ZF、 OF フラグが、 デスティネーションにストアされる結果に従って<br />
設定 さ れる。<br />
追加の Itanium ベース・システム環境例外<br />
Itanium アーキテクチャ ・<br />
レジスタ ・ フォルト<br />
Itanium アーキテクチャ ・<br />
メモリ ・ フォル ト<br />
NaT レ ジ ス タ参照アボ ー ト 。<br />
VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、<br />
データ TLB フォルト、 代替データTLB フォルト、 デー<br />
タ・ページ不在フォルト、 データNaT ページ参照アボー<br />
ト、 データ・キー・ ミス・フォルト、 データ・キー許可<br />
フォルト、 データ・アクセス権フォルト、 データ・アクセ<br />
ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ<br />
ルト。<br />
IA-32_Intercept ロック・インターセプト - DCR.lc が 1 であ り 、 こ の操作を<br />
完了するために外部ア ト ミ ッ ク ・ バス ・ ロ ッ ク が必要であ<br />
る場合は、 ア ト ミ ッ ク ・ ト ランザクシ ョ ンは発生せず、 こ<br />
の命令は失敗し、 IA-32_Intercept(Lock) フォルトが発生す<br />
る。 ソフ ト ウェア ・ ロ ッ ク ・ ハン ド ラが、 この命令をエ<br />
ミュレートする責任を負う。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:773