24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

FBSTP—Store BCD Integer and Pop オペコード 命令 説明 DF /6 FBSTP m80bcd ST(0) を m80bcd にストアし、ST(0) をポップする。 説明 ST(0) レジスタの値を 18 桁のパ ッ ク BCD 整数に変換し、 結果をデス テ ィ ネ ー シ ョ ン ・ オペラン ド にス ト アし、 レジスタ ・ スタ ッ クをポップする。 ソース値は、 非整数値の場 合、 FPU 制御ワ ー ド の RC フ ィ ールド によ って指定される丸めモー ドに従って丸められ る。 レジスタ ・ スタ ッ クをポ ップするため、 プロセッサは ST(0) レジスタを空として マークし、 スタッ ク ・ ポインタ (TOP) を 1 インク リメントする。 デステ ィ ネーシ ョ ン ・ オペラン ド は、 デステ ィ ネーシ ョ ン値の最初のバイト がス ト アさ れる ア ド レ ス を指定す る。 結果の BCD 値は、 ( その符号値を含めて ) 10 バイ ト のメモリ 空間を必要 と す る。 以下の表に、 さ ま ざ ま な ク ラ スのパ ッ ク BCD フォーマットの数をストアしたときに得ら れる結果を示す。 注 : F 有限実数を示す。 D パック BCD 数を示す。 * 浮動小数点無効操作 (#IA) 例外を示す。 ** 丸めモードによって、± 0 または± 1。 ソース値が大きすぎてデスティネーション ・ フォーマッ トで表現できない場合、 無効操 作例外がマス ク されていなければ、 無効操作例外が発生し、 デス テ ィ ネ ー シ ョ ン ・ オペ ラ ン ド に値は ス ト ア さ れない。 無効操作例外がマス ク さ れてい る場合は、 パ ッ ク BCD の 未定義値がメ モ リ にス ト ア さ れる。 ソース値がクワイエッ ト NaN の場合は、無効操作例外が発生する。通常、 クワイエット NaNs では、 この例外は発生しない。 操作 DEST ← BCD(ST(0)); PopRegisterStack; ST(0) DEST −∞ * −F < −1 −D −1 < −F < −0 ** −0 −0 +0 +0 +0 < +F < +1 ** +F > +1 +D +∞ * NaN * 3:466 第 3 巻 : IA-32 基本命令リファレンス

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

FBSTP—Store BCD Integer and Pop ( 続き )<br />

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

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

る。<br />

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

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

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

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

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

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

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

メモリ ・ フォル ト<br />

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

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

VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、<br />

データ TLB フォルト、 代替データTLB フォルト、 デー<br />

タ・ページ不在フォルト、 データNaT ページ参照アボー<br />

ト、 データ・キー・ ミス・フォルト、 データ・キー許可<br />

フォルト、 データ・アクセス権フォルト、 データ・アクセ<br />

ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ<br />

ルト。<br />

浮動小数点例外<br />

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

#IA ソ ー ス ・ オペラ ン ド が空であ る か、 内容が NaN または±<br />

∞、 あるいはサポー ト されていないフ ォ ーマッ ト である<br />

か、 または内容値が 18 BCD 桁の長 さ を超えている場合。<br />

#P 値がデステ ィ ネ ーシ ョ ン ・ フ ォ ーマ ッ ト では正確に表現で<br />

きない場合。<br />

保護モード例外<br />

#GP(0) セグメン ト ・ レジスタに書き込み不可能なセグメン ト を指<br />

示先 と するセグ メ ン ト ・ セレ ク タがロ ー ド されよ う と した<br />

場合。<br />

メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />

または GS セグ メ ン ト の範囲外の場合。<br />

DS、 ES、 FS、 または GS レジスタの内容がNULL セグメ<br />

ン ト ・ セ レ ク タ の場合。<br />

#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />

囲外の場合。<br />

#NM CR0 の EM または TS がセッ ト された場合。<br />

#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />

#AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが<br />

イネーブルにされていて、 アライメントが合わないメモリ<br />

参照が行われた場合。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!