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.

FXTRACT—Extract Exponent and Significand<br />

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

D9 F4 FXTRACT ST(0) の値を指数と仮数に分け、指数を ST(0) にストアし、仮数を<br />

レジスタ・スタックにプッシュする。<br />

説明<br />

T(0) レ ジ ス タ内の ソ ー ス値を その指数 と 仮数に分け、 指数を ST(0) に ス ト アし、 仮数を<br />

レジスタ・スタックにプッシュする。 この操作後は、 新しいスタックのトップのST(0) レ ジ ス タ の内容は元の仮数の実数表現値にな る。 こ の値の符号 と 仮数は、 ソ ー ス ・ オペ<br />

ランドにあった符号と仮数と同じであり、 指数は 3FFFH ( 真のゼロの指数に対してバイ<br />

アスがかけられた値 ) である。 ST(1) レ ジス タの内容は、 元のオペラ ン ド の真の ( バイア<br />

スなし ) 指数の実数表現値であ る。 ( この命令が実行する操作は、 IEEE 推奨の logb(x) 関<br />

数のス ーパセ ッ ト である。 )<br />

この命令と F2XM1 命令は、 べ き乗お よ び範囲のス ケ ー リ ン グ操作を行 う 場合に有用で<br />

ある。 FXTRACT 命令は、 拡張実数フ ォ ー マ ッ ト の数値を ( 例えば、 印刷または表示す<br />

るために ) 10 進表現に変換する場合に も 有用である。<br />

浮動小数点ゼ ロ での除算例外 (#Z) がマスク されていて、 ソース ・ オペラン ド がゼロであ<br />

る場合は、 指数値 と して - ∞が ST(1) レジスタにストアされ、 ソース ・ オペランドの符<br />

号 と 同じ符号の 0 が ST(0) レジスタにストアされる。<br />

操作<br />

TEMP ← Significand(ST(0));<br />

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

TOP← TOP − 1;<br />

ST(0) ← TEMP;<br />

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

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

れ、 スタック ・ オーバフローが発生した場合は 1 にセッ ト<br />

される。<br />

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

浮動小数点例外<br />

#IS ス タ ッ ク ・ アンダ フ ロ ーが発生した場合。<br />

ス タ ッ ク ・ オ ー バフ ロ ーが発生した場合。<br />

#IA ソース・オペランドがSNaN 値であるか、 ま たはその<br />

フォーマットがサポートされていない場合。<br />

#Z ST(0) レジスタのオペランドが± 0。<br />

#D ソ ー ス ・ オペラ ン ド がデ ノ ー マル値である場合。<br />

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

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

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

浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、<br />

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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!