24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

FCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Real and Set EFLAGS ( 続き ) 浮動小数点例外 #IS ス タ ッ ク ・ アンダ フ ロ ーが発生した場合。 #IA (FCOMI または FCOMIP 命令 ) 一方 ま たは両方のオペラ ン ドがNaN 値であるか、 ま たはそれら のフ ォ ーマ ッ ト がサ ポー ト されていない場合。 (FUCOMI または FUCOMIP 命令 ) 一方 ま たは両方のオペ ランドがSNaN 値である ( ただし、 QNaN ではない ) か、 ま たは それら の フ ォ ー マ ッ ト が定義 さ れていない場合。 QNaN 値が検出されても、 無効オペラン ド例外は発生しな い。 保護モード例外 #NM CR0 の EM または TS がセッ ト された場合。 実アドレス・モード例外 #NM CR0 の EM または TS がセッ ト された場合。 仮想 8086 モード例外 #NM CR0 の EM または TS がセッ ト された場合。 3:478 第 3 巻 : IA-32 基本命令リファレンス

FCOS—Cosine オペコード 命令 説明 D9 FF FCOS ST(0) をその余弦で置き換える。 説明 ST(0) レジスタ内のソース ・ オペランドの余弦を計算し、 結果を ST(0) にス トアする。 ソース ・オペランドはラジアン単位の± 263 の範囲内の値でなければな ら ない。 以下の 表に、 オーバフローもアンダフローも発生しないものとして、 さまざまなクラスの数の 余弦を計算した と き に得 ら れる結果を示す。 注 : F 有限実数を示す。 * 浮動小数点無効算術オペランド (#IA) 例外を示す。 ソース ・ オペラン ド が許容可能な範囲を超えた場合は、 FPU ステータス ・ ワー ドの C2 フラグがセッ ト され、 ST(0) レ ジス タの値は以前の ま ま変わ ら ない。 この命令は、 ソ ー ス ・ オペラ ン ド が範囲外で も 例外を発生しない。 プ ロ グ ラ ムの責任で、 C2 フラグを調べ て範囲外条件の有無を確認しなければな ら ない。 ± 2 63 の範囲を超える ソース値は、 2 π の適切な整数倍を引 く か、 または除数を 2 π として FPREM 命令を使用して、 命令の許 容範囲内に縮小で き る。 操作 ST(0) SRC ST(0) DEST −∞ * −F −1 ~ +1 −0 +1 +0 +1 +F −1 ~ +1 +∞ * NaN NaN IF |ST(0)| < 263 THEN C2 ← 0; ST(0) ← cosine(ST(0)); ELSE (*source operand is out-of-range *) C2 ← 1; FI; FPU 影響を受けるフラグ C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト され る。 不正確結果例外 (#P) が発生した場合は、 丸めの方向を示 す。 0 = 切り上げなし、 1 = 切り上げ。 C2 が 1 の場合は未定義。 C2 ソース・オペランドが± 2 63 の範囲外の場合は 1 にセッ ト さ れる。 範囲内の場合は 0 にク リアされる。 C0、 C3 未定義。 第 3 巻 : IA-32 基本命令リファレンス 3:479

FCOS—Cosine<br />

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

D9 FF FCOS ST(0) をその余弦で置き換える。<br />

説明<br />

ST(0) レジスタ内のソース ・ オペランドの余弦を計算し、 結果を ST(0) にス トアする。<br />

ソース ・オペランドはラジアン単位の± 263 の範囲内の値でなければな ら ない。 以下の<br />

表に、 オーバフローもアンダフローも発生しないものとして、 さまざまなクラスの数の<br />

余弦を計算した と き に得 ら れる結果を示す。<br />

注 :<br />

F 有限実数を示す。<br />

* 浮動小数点無効算術オペランド (#IA) 例外を示す。<br />

ソース ・ オペラン ド が許容可能な範囲を超えた場合は、 FPU ステータス ・ ワー ドの C2<br />

フラグがセッ ト され、 ST(0) レ ジス タの値は以前の ま ま変わ ら ない。 この命令は、 ソ ー<br />

ス ・ オペラ ン ド が範囲外で も 例外を発生しない。 プ ロ グ ラ ムの責任で、 C2 フラグを調べ<br />

て範囲外条件の有無を確認しなければな ら ない。 ± 2 63 の範囲を超える ソース値は、 2 π<br />

の適切な整数倍を引 く か、 または除数を 2 π として FPREM 命令を使用して、 命令の許<br />

容範囲内に縮小で き る。<br />

操作<br />

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

−∞ *<br />

−F −1 ~ +1<br />

−0 +1<br />

+0 +1<br />

+F −1 ~ +1<br />

+∞ *<br />

NaN NaN<br />

IF |ST(0)| < 263<br />

THEN<br />

C2 ← 0;<br />

ST(0) ← cosine(ST(0));<br />

ELSE (*source operand is out-of-range *)<br />

C2 ← 1;<br />

FI;<br />

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

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

る。<br />

不正確結果例外 (#P) が発生した場合は、 丸めの方向を示<br />

す。 0 = 切り上げなし、 1 = 切り上げ。<br />

C2 が 1 の場合は未定義。<br />

C2 ソース・オペランドが± 2 63 の範囲外の場合は 1 にセッ ト<br />

さ れる。 範囲内の場合は 0 にク リアされる。<br />

C0、 C3 未定義。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!