16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

FYL2X—Compute y ∗ log 2x<br />

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

D9 F1 FYL2X ST(1) を (ST(1) ∗ log2ST(0)) で置き換え、レジスタ・スタックを<br />

ポップする。<br />

説明<br />

(ST(1) ∗ log2 (ST(0))) を計算し、 結果を ST(1) レジスタにストアし、 FPU レジスタ ・ ス<br />

タックをポップする。 ST(0) のソース ・ オペラン ド はゼロでない正の数値でなければなら<br />

ない。<br />

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

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

表 1-11. FYL2X の 0 と NaN<br />

注 :<br />

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

* 浮動小数点無効操作 (#IA) 例外を示す。<br />

** 浮動小数点ゼロでの除算 (#Z) 例外を示す。<br />

ゼ ロ での除算例外がマス ク さ れていて、 ST(0) レジスタの内容が± 0 であ る場合、 こ の命<br />

令は、 ソ ー ス ・ オペラン ド の符号 と 反対の符号の∞を ST(1) レジスタに返す。<br />

FYL2X 命令は、 以下に示す組み込み関数乗算を使用して、 任意の正の底を も つ対数の計<br />

算を最適化する よ う に設計されている。<br />

logbx = (log2b) -1 ∗ log2x 操作<br />

IF<br />

ST(0)<br />

−∞ −F +0 +0 +F +∞ NaN<br />

−∞ * * +∞ +∞ +∞ −∞NaN ST(1) −F * * ** ** ±F −∞ NaN<br />

−0 * * * * +0 * NaN<br />

+0 * * * * +0 * NaN<br />

+F * * ** ** ±F +∞ NaN<br />

+∞ * * −∞ −∞ −∞ +∞ NaN<br />

NaN NaN NaN NaN NaN NaN NaN NaN<br />

ST(1) ← ST(1) ∗ log2ST(0); PopRegisterStack;<br />

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

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

る。<br />

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

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

C0、 C2、 C3 未定義。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!