24531904_j
24531904_j 24531904_j
FSAVE/FNSAVE—Store FPU State ( 続き ) 操作 (* Save FPU State and Registers *) DEST(FPUControlWord) ← FPUControlWord; DEST(FPUStatusWord) ← FPUStatusWord; DEST(FPUTagWord) ← FPUTagWord; DEST(FPUDataPointer) ← FPUDataPointer; DEST(FPUInstructionPointer) ← FPUInstructionPointer; DEST(FPULastInstructionOpcode) ← FPULastInstructionOpcode; DEST(ST(0)) ← ST(0); DEST(ST(1)) ← ST(1); DEST(ST(2)) ← ST(2); DEST(ST(3)) ← ST(3); DEST(ST(4)) ← ST(4); DEST(ST(5)) ← ST(5); DEST(ST(6)) ← ST(6); DEST(ST(7)) ← ST(7); (* Initialize FPU *) FPUControlWord ← 037FH; FPUStatusWord ← 0; FPUTagWord ← FFFFH; FPUDataPointer ← 0; FPUInstructionPointer ← 0; FPULastInstructionOpcode ← 0; FPU 影響を受けるフラグ C0、 C1、 C2、 C3 フ ラ グがセ ー ブ さ れ、 次に ク リ ア さ れる。 浮動小数点例外 なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、 NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 3:528 第 3 巻 : IA-32 基本命令リファレンス
FSAVE/FNSAVE—Store FPU State ( 続き ) 保護モード例外 #GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある 場合。 メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 DS、 ES、 FS、 または GS レジスタを使用してメモリがア クセスされ、 レジスタの内容が NULL セグメン ト ・ セレ クタであった場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #NM CR0 の EM または TS がセッ ト された場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが イネーブルにされていて、 アライメントが合わないメモリ 参照が行われた場合。 実アドレス・モード例外 #GP メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #NM CR0 の EM または TS がセッ ト された場合。 仮想 8086 モード例外 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #NM CR0 の EM または TS がセッ ト された場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ イ メン ト が合わないメモ リ 参照が行われた場合。 インテル・アーキテクチャにおける互換性 インテル Pentium プロセッサよ り以前のインテル ® 数値演算 コ プ ロ セ ッ サお よ び FPU の 場合は、 前の FSAVE/FNSAVE 命令でス トアされたメモリ ・ イメージから読み取る前に、 FWAIT 命令を実行す る。 こ の FWAIT 命令に よ っ て、 よ り 確実に ス ト ア操作を完了で き る。 第 3 巻 : IA-32 基本命令リファレンス 3:529
- Seite 490 und 491: FCOMI/FCOMIP/ FUCOMI/FUCOMIP—Comp
- Seite 492 und 493: FCOS—Cosine ( 続き ) 追加の
- Seite 494 und 495: FDIV/FDIVP/FIDIV—Divide オペコ
- Seite 496 und 497: FDIV/FDIVP/FIDIV—Divide ( 続き
- Seite 498 und 499: FDIVR/FDIVRP/FIDIVR—Reverse Divid
- Seite 500 und 501: FDIVR/FDIVRP/FIDIVR—Reverse Divid
- Seite 502 und 503: FFREE—Free Floating-Point Registe
- Seite 504 und 505: FICOM/FICOMP—Compare Integer (
- Seite 506 und 507: FILD—Load Integer オペコード
- Seite 508 und 509: FINCSTP—Increment Stack-Top Point
- Seite 510 und 511: FIST/FISTP—Store Integer オペ
- Seite 512 und 513: FIST/FISTP—Store Integer ( 続き
- Seite 514 und 515: FLD—Load Real ( 続き ) 浮動
- Seite 516 und 517: FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLD
- Seite 518 und 519: FLDCW—Load Control Word ( 続き
- Seite 520 und 521: FLDENV—Load FPU Environment ( 続
- Seite 522 und 523: FMUL/FMULP/FIMUL—Multiply ( 続
- Seite 524 und 525: FMUL/FMULP/FIMUL—Multiply ( 続
- Seite 526 und 527: FPATAN—Partial Arctangent オペ
- Seite 528 und 529: FPREM—Partial Remainder オペコ
- Seite 530 und 531: FPREM—Partial Remainder ( 続き
- Seite 532 und 533: FPREM1—Partial Remainder ( 続き
- Seite 534 und 535: FPTAN—Partial Tangent オペコ
- Seite 536 und 537: FRNDINT—Round to Integer オペ
- Seite 538 und 539: FRSTOR—Restore FPU State ( 続き
- Seite 542 und 543: FSCALE—Scale オペコード 命
- Seite 544 und 545: FSIN—Sine オペコード 命令
- Seite 546 und 547: FSINCOS—Sine and Cosine オペコ
- Seite 548 und 549: FSQRT—Square Root オペコード
- Seite 550 und 551: FST/FSTP—Store Real オペコー
- Seite 552 und 553: FST/FSTP—Store Real ( 続き ) #A
- Seite 554 und 555: FSTCW/FNSTCW—Store Control Word (
- Seite 556 und 557: FSTENV/FNSTENV—Store FPU Environm
- Seite 558 und 559: FSTSW/FNSTSW—Store Status Word (
- Seite 560 und 561: FSUB/FSUBP/FISUB—Subtract ( 続
- Seite 562 und 563: FSUBR/FSUBRP/FISUBR—Reverse Subtr
- Seite 564 und 565: FSUBR/FSUBRP/FISUBR—Reverse Subtr
- Seite 566 und 567: FTST—TEST オペコード 命令
- Seite 568 und 569: FUCOM/FUCOMP/FUCOMPP—Unordered Co
- Seite 570 und 571: FWAIT—Wait 本章の 「WAIT」
- Seite 572 und 573: FXAM—Examine ( 続き ) 実アド
- Seite 574 und 575: FXCH—Exchange Register Contents (
- Seite 576 und 577: FXTRACT—Extract Exponent and Sign
- Seite 578 und 579: FYL2X—Compute y ∗ log 2 x ( 続
- Seite 580 und 581: FYL2XP1—Compute y ∗ log 2 (x +1
- Seite 582 und 583: IDIV—Signed Divide オペコー
- Seite 584 und 585: IDIV—Signed Divide ( 続き ) 実
- Seite 586 und 587: IMUL—Signed Multiply ( 続き ) 2
- Seite 588 und 589: IMUL—Signed Multiply ( 続き )
FSAVE/FNSAVE—Store FPU State ( 続き )<br />
保護モード例外<br />
#GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある<br />
場合。<br />
メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
DS、 ES、 FS、 または GS レジスタを使用してメモリがア<br />
クセスされ、 レジスタの内容が NULL セグメン ト ・ セレ<br />
クタであった場合。<br />
#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />
囲外の場合。<br />
#NM CR0 の EM または TS がセッ ト された場合。<br />
#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />
#AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが<br />
イネーブルにされていて、 アライメントが合わないメモリ<br />
参照が行われた場合。<br />
実アドレス・モード例外<br />
#GP メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
#SS メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />
囲外の場合。<br />
#NM CR0 の EM または TS がセッ ト された場合。<br />
仮想 8086 モード例外<br />
#GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />
囲外の場合。<br />
#NM CR0 の EM または TS がセッ ト された場合。<br />
#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />
#AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ<br />
イ メン ト が合わないメモ リ 参照が行われた場合。<br />
インテル・アーキテクチャにおける互換性<br />
インテル Pentium プロセッサよ り以前のインテル ® 数値演算 コ プ ロ セ ッ サお よ び FPU の<br />
場合は、 前の FSAVE/FNSAVE 命令でス トアされたメモリ ・ イメージから読み取る前に、<br />
FWAIT 命令を実行す る。 こ の FWAIT 命令に よ っ て、 よ り 確実に ス ト ア操作を完了で き<br />
る。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:529