24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

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

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!