24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

FST/FSTP—Store Real オペコード 命令 説明 D9 /2 FST m32real ST(0) を m32real にコピーする。 DD /2 FST m64real ST(0) を m64real にコピーする。 DD D0+i FST ST(i) ST(0) を ST(i) にコピーする。 D9 /3 FSTP m32real ST(0) を m32real にコピーし、レジスタ・スタックをポップする。 DD /3 FSTP m64real ST(0) を m64real にコピーし、レジスタ・スタックをポップする。 DB /7 FSTP m80real ST(0) を m80real にコピーし、レジスタ・スタックをポップする。 DD D8+i FSTP ST(i) ST(0) を ST(i) にコピーし、レジスタ・スタックをポップする。 説明 ST(0) レジスタの値をデスティネーション・オペランドにコピーする。 デスティネーショ ン ・ オペランドには、 メモリ ・ ロケーションまたは FPU レジスタ ・ スタック内の別のレ ジ ス タ を使用で き る。 値を メ モ リ にス ト アする と き は、 値は単精度実数 ま たは倍精度実 数のフ ォ ーマ ッ ト に変換される。 FSTP 命令は、 FST 命令 と 同じ操作を実行した後に、 レ ジ ス タ ・ ス タ ッ ク を ポ ッ プす る。 レジスタ ・ スタックをポップするため、 プロセッサは ST(0) レジスタを空としてマーク し、 スタ ッ ク ・ ポインタ (TOP) を 1 インク リメントする。 FSTP 命令は、 値を メ モ リ に拡 張実数フ ォ ー マ ッ ト で も ス ト アで き る。 デステ ィ ネーシ ョ ン ・ オペラン ド がメモ リ ・ ロケーシ ョ ンの場合、 このオペラン ド はデ スティネーション値の最初のバイトがストアされるアドレスを指定する。 デスティネー シ ョ ン ・ オペラン ド がレジスタの場合、 このオペラン ド はレジスタ ・ スタ ッ ク内のス タ ッ ク の ト ッ プか ら 相対的に レ ジ ス タ を指定す る。 デス テ ィ ネ ー シ ョ ンのサイ ズが単精度実数 ま たは倍精度実数の場合、 ス ト ア さ れる値の 仮数は (FPU 制御ワ ー ド の RC フ ィ ール ド に よ って指定された丸めモー ド に従って ) デス テ ィ ネーシ ョ ンの幅に丸められ、 指数はデステ ィ ネーシ ョ ン ・ フ ォ ーマッ ト の幅とバイ アスに変換される。 ス ト アされる値が大きすぎてデステ ィ ネーシ ョ ン ・ フ ォ ーマッ ト で 表現で き ない場合は、 数値オ ー バフ ロ ー例外 (#0) が発生し、 その例外がマス ク されてい ない場合はデスティネーション・オペランドには何の値もストアされない。 ストアされ る値がデノーマル値であっても、 デノーマル例外(#D) は発生しない。 この条件が単に数 値アンダフ ロ ー例外 (#U) 条件 と して報告される だけである。 ストアされる値が±0、 ±∞、 または NaN の場合は、 仮数およ び指数の最下位ビ ッ ト が デステ ィ ネー シ ョ ン ・ フ ォ ーマ ッ ト に合わせて切り捨て られる。 こ の操作では、 値のア イデンテ ィ ティが 0、 ∞、 または NaN として保存される。 デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド が空でないレ ジ ス タ の場合は、 無効操作例外は発生し ない。 操作 DEST ← ST(0); IF instruction = FSTP THEN PopRegisterStack; FI; 3:538 第 3 巻 : IA-32 基本命令リファレンス

FST/FSTP—Store Real ( 続き ) FPU 影響を受けるフラグ C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト され る。 不正確結果例外 (#P) が発生した場合は、 丸めの方向を示 す。 0 = 切り上げなし、 1 = 切り上げ。 C0、 C2、 C3 未定義。 浮動小数点例外 #IS ス タ ッ ク ・ アンダ フ ロ ーが発生した場合。 #IA ソース・オペランドがSNaN 値であるか、 ま たはその フォーマットがサポートされていない場合。 #U 結果が小さすぎて、 デスティネーション・フォーマットで 表現で き ない場合。 #O 結果が大きすぎて、 デスティネーション・フォーマットで 表現で き ない場合。 #P 値がデステ ィ ネ ーシ ョ ン ・ フ ォ ーマ ッ ト では正確に表現で きない場合。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、 NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 保護モード例外 #GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある 場合。 メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 DS、 ES、 FS、 または GS レジスタを使用してメモリがア クセスされ、 レジスタの内容が NULL セグメン ト ・ セレ クタであった場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #NM CR0 の EM または TS がセッ ト された場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 第 3 巻 : IA-32 基本命令リファレンス 3:539

FST/FSTP—Store Real<br />

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

D9 /2 FST m32real ST(0) を m32real にコピーする。<br />

DD /2 FST m64real ST(0) を m64real にコピーする。<br />

DD D0+i FST ST(i) ST(0) を ST(i) にコピーする。<br />

D9 /3 FSTP m32real ST(0) を m32real にコピーし、レジスタ・スタックをポップする。<br />

DD /3 FSTP m64real ST(0) を m64real にコピーし、レジスタ・スタックをポップする。<br />

DB /7 FSTP m80real ST(0) を m80real にコピーし、レジスタ・スタックをポップする。<br />

DD D8+i FSTP ST(i) ST(0) を ST(i) にコピーし、レジスタ・スタックをポップする。<br />

説明<br />

ST(0) レジスタの値をデスティネーション・オペランドにコピーする。 デスティネーショ<br />

ン ・ オペランドには、 メモリ ・ ロケーションまたは FPU レジスタ ・ スタック内の別のレ<br />

ジ ス タ を使用で き る。 値を メ モ リ にス ト アする と き は、 値は単精度実数 ま たは倍精度実<br />

数のフ ォ ーマ ッ ト に変換される。<br />

FSTP 命令は、 FST 命令 と 同じ操作を実行した後に、 レ ジ ス タ ・ ス タ ッ ク を ポ ッ プす る。<br />

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

し、 スタ ッ ク ・ ポインタ (TOP) を 1 インク リメントする。 FSTP 命令は、 値を メ モ リ に拡<br />

張実数フ ォ ー マ ッ ト で も ス ト アで き る。<br />

デステ ィ ネーシ ョ ン ・ オペラン ド がメモ リ ・ ロケーシ ョ ンの場合、 このオペラン ド はデ<br />

スティネーション値の最初のバイトがストアされるアドレスを指定する。 デスティネー<br />

シ ョ ン ・ オペラン ド がレジスタの場合、 このオペラン ド はレジスタ ・ スタ ッ ク内のス<br />

タ ッ ク の ト ッ プか ら 相対的に レ ジ ス タ を指定す る。<br />

デス テ ィ ネ ー シ ョ ンのサイ ズが単精度実数 ま たは倍精度実数の場合、 ス ト ア さ れる値の<br />

仮数は (FPU 制御ワ ー ド の RC フ ィ ール ド に よ って指定された丸めモー ド に従って ) デス<br />

テ ィ ネーシ ョ ンの幅に丸められ、 指数はデステ ィ ネーシ ョ ン ・ フ ォ ーマッ ト の幅とバイ<br />

アスに変換される。 ス ト アされる値が大きすぎてデステ ィ ネーシ ョ ン ・ フ ォ ーマッ ト で<br />

表現で き ない場合は、 数値オ ー バフ ロ ー例外 (#0) が発生し、 その例外がマス ク されてい<br />

ない場合はデスティネーション・オペランドには何の値もストアされない。 ストアされ<br />

る値がデノーマル値であっても、 デノーマル例外(#D) は発生しない。 この条件が単に数<br />

値アンダフ ロ ー例外 (#U) 条件 と して報告される だけである。<br />

ストアされる値が±0、 ±∞、 または NaN の場合は、 仮数およ び指数の最下位ビ ッ ト が<br />

デステ ィ ネー シ ョ ン ・ フ ォ ーマ ッ ト に合わせて切り捨て られる。 こ の操作では、 値のア<br />

イデンテ ィ ティが 0、 ∞、 または NaN として保存される。<br />

デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド が空でないレ ジ ス タ の場合は、 無効操作例外は発生し<br />

ない。<br />

操作<br />

DEST ← ST(0);<br />

IF instruction = FSTP<br />

THEN<br />

PopRegisterStack;<br />

FI;<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!