24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

FFREE—Free Floating-Point Register オペコード 命令 説明 DD C0+i FFREE ST(i) ST(i) のタグを空に設定する。 説明 ST(i) レジスタに関連する FPU タグ ・ レジスタ内のタグを空(11B) に設定する。 ST(i) お よび FPU スタック ・ ト ップ ・ ポインタ (TOP) の内容は影響を受けない。 操作 TAG(i) ← 11B; FPU 影響を受けるフラグ C0、 C1、 C2、 C3 未定義。 浮動小数点例外 なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト 保護モード例外 #NM CR0 の EM または TS がセッ ト された場合。 実アドレス・モード例外 #NM CR0 の EM または TS がセッ ト された場合。 仮想 8086 モード例外 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )。 #NM CR0 の EM または TS がセッ ト された場合。 3:490 第 3 巻 : IA-32 基本命令リファレンス

FICOM/FICOMP—Compare Integer オペコード 命令 説明 DE /2 FICOM m16int ST(0) を m16int と比較する。 DA /2 FICOM m32int ST(0) を m32int と比較する。 DE /3 FICOMP m16int ST(0) を m16int と比較し、スタック・レジスタをポップする。 DA /3 FICOMP m32int ST(0) を m32int と比較し、スタック・レジスタをポップする。 説明 ST(0) レジスタの値を整数ソース ・ オペランド と比較し、 結果に従ってFPU ステータ ス ・ ワ ー ド の条件 コ ー ド ・ フ ラ グ C0、 C2、 C3 をセッ ト する ( 以下の表を参照 )。 整数値 は、 比較が行われる前に拡張実数フ ォ ー マ ッ ト に変換される。 条件 C3 C2 C0 ST(0) > SRC 0 0 0 ST(0) < SRC 0 0 1 ST(0) = SRC 1 0 0 順序付けなし 1 1 1 こ れ ら の命令では、 「順序付けなし比較」 を実行す る。 順序付けなし比較は、 さ ら に比較 対象の 2 つの数値のクラスのチェックも行う。 どちらかのオペランドが NaN であるか、 ま たは その フ ォ ー マ ッ ト が定義 さ れていない場合は、 条件フ ラ グが 「順序付けなし」 に 設定 さ れる。 ゼ ロ の符号は無視 さ れる。 すなわ ち、 -0.0 = +0.0 である。 FICOMP 命令は、 比較後に レ ジ ス タ ・ ス タ ッ ク を ポ ッ プす る。 レ ジ ス タ ・ ス タ ッ ク を ポップするため、 プロセッサはST(0) レジスタを空としてマークし、 スタック ・ ポイン タ (TOP) を 1 インク リ メン トする。 操作 CASE (relation of operands) OF ST(0) > SRC: C3, C2, C0 ← 000; ST(0) < SRC: C3, C2, C0 ← 001; ST(0) = SRC: C3, C2, C0 ← 100; Unordered: C3, C2, C0 ← 111; ESAC; IF instruction = FICOMP THEN PopRegisterStack; FI; FPU 影響を受けるフラグ C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト さ れ、 発生しなか っ た場合は 0 にクリアされる。 C0、 C2、 C3 前ペー ジの表を参照。 第 3 巻 : IA-32 基本命令リファレンス 3:491

FICOM/FICOMP—Compare Integer<br />

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

DE /2 FICOM m16int ST(0) を m16int と比較する。<br />

DA /2 FICOM m32int ST(0) を m32int と比較する。<br />

DE /3 FICOMP m16int ST(0) を m16int と比較し、スタック・レジスタをポップする。<br />

DA /3 FICOMP m32int ST(0) を m32int と比較し、スタック・レジスタをポップする。<br />

説明<br />

ST(0) レジスタの値を整数ソース ・ オペランド と比較し、 結果に従ってFPU ステータ<br />

ス ・ ワ ー ド の条件 コ ー ド ・ フ ラ グ C0、 C2、 C3 をセッ ト する ( 以下の表を参照 )。 整数値<br />

は、 比較が行われる前に拡張実数フ ォ ー マ ッ ト に変換される。<br />

条件 C3 C2 C0<br />

ST(0) > SRC 0 0 0<br />

ST(0) < SRC 0 0 1<br />

ST(0) = SRC 1 0 0<br />

順序付けなし 1 1 1<br />

こ れ ら の命令では、 「順序付けなし比較」 を実行す る。 順序付けなし比較は、 さ ら に比較<br />

対象の 2 つの数値のクラスのチェックも行う。 どちらかのオペランドが NaN であるか、<br />

ま たは その フ ォ ー マ ッ ト が定義 さ れていない場合は、 条件フ ラ グが 「順序付けなし」 に<br />

設定 さ れる。<br />

ゼ ロ の符号は無視 さ れる。 すなわ ち、 -0.0 = +0.0 である。<br />

FICOMP 命令は、 比較後に レ ジ ス タ ・ ス タ ッ ク を ポ ッ プす る。 レ ジ ス タ ・ ス タ ッ ク を<br />

ポップするため、 プロセッサはST(0) レジスタを空としてマークし、 スタック ・ ポイン<br />

タ (TOP) を 1 インク リ メン トする。<br />

操作<br />

CASE (relation of operands) OF<br />

ST(0) > SRC: C3, C2, C0 ← 000;<br />

ST(0) < SRC: C3, C2, C0 ← 001;<br />

ST(0) = SRC: C3, C2, C0 ← 100;<br />

Unordered: C3, C2, C0 ← 111;<br />

ESAC;<br />

IF instruction = FICOMP<br />

THEN<br />

PopRegisterStack;<br />

FI;<br />

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

C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト さ<br />

れ、 発生しなか っ た場合は 0 にクリアされる。<br />

C0、 C2、 C3 前ペー ジの表を参照。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!