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.

FSIN—Sine<br />

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

D9 FE FSIN 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 />

IF I<br />

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

−∞ *<br />

−F −1 ~ +1<br />

−0 −0<br />

+0 +0<br />

+F −1 ~ +1<br />

+∞ *<br />

NaN NaN<br />

IF ST(0) < 2 63<br />

THEN<br />

C2 ← 0;<br />

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

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

C2 ← 1;<br />

FI:<br />

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

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

る。<br />

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

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

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

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

C0、 C3 未定義。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!