16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

CMPXCHG8B—Compare and Exchange 8 Bytes<br />

オペコード 命令 説明<br />

0F C7 /1 m64 CMPXCHG8B m64 EDX:EAX を m64 と比較し、等しい場合は ZF をセットし、<br />

ECX:EBX を m64 にロードする。等しくない場合は ZF をクリアし、<br />

m64 を EDX:EAX にロードする。<br />

説明<br />

EDX:EAX の 64 ビット値をオペランド ( デステ ィ ネーシ ョ ン ・ オペラン ド ) と比較する。<br />

値が等しい場合は、 ECX:EBX の 64 ビット値がデスティネーション・オペランドにスト<br />

アされる。 等しくない場合は、 デスティネーション ・ オペランドの値がEDX:EAX に<br />

ロードされる。 デスティネーション・オペランドは8 バイ ト のメモリ ・ ロケーシ ョンで<br />

ある。 EDX:EAX および ECX:EBX のレジスタ ・ ペアでは、 EDX と ECX の内容が 64<br />

ビッ ト値の上位32 ビッ トであり、 EAX と EBX の内容が下位 32 ビッ トである。<br />

この命令は、 前に LOCK プリフィックスを付けると、 自動的に実行できる。 プロセッサ<br />

のバスとのインタフェースを単純にするため、 デスティネーション ・ オペランドは比較<br />

の結果にかかわ り な く 書き込みサ イ ク ルを受け る。 比較が失敗した場合はデス テ ィ ネ ー<br />

ション・オペランドがデスティネーションに書き戻され、 比較が成功した場合はソー<br />

ス ・ オペラン ドがデステ ィ ネーシ ョ ンに書き込まれる。 ( プロセッサは、 同時にロック書 き込みも伴わずにロッ ク読み取りを生じるこ とは決してない。 )<br />

操作<br />

IF Itanium System Environment AND External_Atomic_Lock_Required AND DCR.lc<br />

THEN IA-32_Intercept(LOCK,CMPXCHG);<br />

IF (EDX:EAX = DEST)<br />

ZF ← 1<br />

DEST ← ECX:EBX<br />

ELSE<br />

ZF ← 0<br />

EDX:EAX ← DEST<br />

影響を受けるフラグ<br />

デステ ィ ネーシ ョ ン ・ オペラン ド と EDX:EAX が等しい場合は ZF フラグがセット され、<br />

等し く ない場合は ク リ アされる。 CF、 PF、 AF、 SF、 および 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 />

3:438 第 3 巻 : IA-32 基本命令リファレンス

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!