24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

CMOVcc—Conditional Move ( 続き ) ス テ ー タ ス ・ フ ラ グの特定の状態は と き と して 2 種類に解釈される こ と があるので、 一 部のオペコ ー ド に対しては 2 つのニーモニ ッ クが定義されている。 例えば、 CMOVA ( よ り上条件付き転送) 命令 と CMOVNBE ( よ り 下でな く 等し く ない条件付き転送 ) 命令 と は、 同一のオペコ ー ド 0F 47H に対する 2 つのニーモニッ クである。 CMOVcc 命令は Pentium Pro プ ロ セ ッ サ ・ フ ァ ミ リ に新たに導入 さ れたが、 こ れ ら の命令 はこのファミ リのすべてのプロセッサでサポート されているわけではない。 CMOVcc 命 令がサポ ー ト されているかど う かは、 CPUID 命令でプ ロ セ ッ サの機能情報を調べ る こ と により判定できる (3:440 ページの 「CPUID—CPU Identification」 を参照 )。 操作 temp ← DEST IF condition TRUE THEN DEST ← SRC ELSE DEST ← temp FI; 影響を受けるフラグ なし。 メ モ リ 形式で状態が偽であ る場合、 プ ロ セ ッ サ ・ モデルに よ っ ては、 ロ ー ド が開始 さ れ ( ロード されたデータが廃棄され)、 メモリ ・ フォル トが発生する可能性がある。 他のプ ロ セ ッ サ ・ モデルでは、 状態が偽である場合は、 ロ ー ド は開始 さ れず、 フ ォ ル ト は発生 しない。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 保護モード例外 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 DS、 ES、 FS、 または GS レジスタの内容がNULL セグメ ン ト ・ セ レ ク タ の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 3:428 第 3 巻 : IA-32 基本命令リファレンス

CMOVcc—Conditional Move ( 続き ) #AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが イネーブルにされていて、 アライメントが合わないメモリ 参照が行われた場合。 実アドレス・モード例外 #GP メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 仮想 8086 モード例外 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ イ メン ト が合わないメモ リ 参照が行われた場合。 第 3 巻 : IA-32 基本命令リファレンス 3:429

CMOVcc—Conditional Move ( 続き )<br />

ス テ ー タ ス ・ フ ラ グの特定の状態は と き と して 2 種類に解釈される こ と があるので、 一<br />

部のオペコ ー ド に対しては 2 つのニーモニ ッ クが定義されている。 例えば、 CMOVA ( よ<br />

り上条件付き転送) 命令 と CMOVNBE ( よ り 下でな く 等し く ない条件付き転送 ) 命令 と<br />

は、 同一のオペコ ー ド 0F 47H に対する 2 つのニーモニッ クである。<br />

CMOVcc 命令は Pentium Pro プ ロ セ ッ サ ・ フ ァ ミ リ に新たに導入 さ れたが、 こ れ ら の命令<br />

はこのファミ リのすべてのプロセッサでサポート されているわけではない。 CMOVcc 命<br />

令がサポ ー ト されているかど う かは、 CPUID 命令でプ ロ セ ッ サの機能情報を調べ る こ と<br />

により判定できる (3:440 ページの 「CPUID—CPU Identification」 を参照 )。<br />

操作<br />

temp ← DEST<br />

IF condition TRUE<br />

THEN<br />

DEST ← SRC<br />

ELSE<br />

DEST ← temp<br />

FI;<br />

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

なし。<br />

メ モ リ 形式で状態が偽であ る場合、 プ ロ セ ッ サ ・ モデルに よ っ ては、 ロ ー ド が開始 さ れ<br />

( ロード されたデータが廃棄され)、 メモリ ・ フォル トが発生する可能性がある。 他のプ<br />

ロ セ ッ サ ・ モデルでは、 状態が偽である場合は、 ロ ー ド は開始 さ れず、 フ ォ ル ト は発生<br />

しない。<br />

追加の Itanium ベース・システム環境例外<br />

Itanium アーキテクチャ ・<br />

レジスタ ・ フォルト<br />

Itanium アーキテクチャ ・<br />

メモリ ・ フォル ト<br />

NaT レ ジ ス タ参照アボ ー ト 。<br />

VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、<br />

データ TLB フォルト、 代替データTLB フォルト、 デー<br />

タ・ページ不在フォルト、 データNaT ページ参照アボー<br />

ト、 データ・キー・ ミス・フォルト、 データ・キー許可<br />

フォルト、 データ・アクセス権フォルト、 データ・アクセ<br />

ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ<br />

ルト。<br />

保護モード例外<br />

#GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />

または GS セグ メ ン ト の範囲外の場合。<br />

DS、 ES、 FS、 または GS レジスタの内容がNULL セグメ<br />

ン ト ・ セ レ ク タ の場合。<br />

#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />

囲外の場合。<br />

#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!