24531904_j
24531904_j 24531904_j
FCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Real and Set EFLAGS ( 続き ) 浮動小数点例外 #IS ス タ ッ ク ・ アンダ フ ロ ーが発生した場合。 #IA (FCOMI または FCOMIP 命令 ) 一方 ま たは両方のオペラ ン ドがNaN 値であるか、 ま たはそれら のフ ォ ーマ ッ ト がサ ポー ト されていない場合。 (FUCOMI または FUCOMIP 命令 ) 一方 ま たは両方のオペ ランドがSNaN 値である ( ただし、 QNaN ではない ) か、 ま たは それら の フ ォ ー マ ッ ト が定義 さ れていない場合。 QNaN 値が検出されても、 無効オペラン ド例外は発生しな い。 保護モード例外 #NM CR0 の EM または TS がセッ ト された場合。 実アドレス・モード例外 #NM CR0 の EM または TS がセッ ト された場合。 仮想 8086 モード例外 #NM CR0 の EM または TS がセッ ト された場合。 3:478 第 3 巻 : IA-32 基本命令リファレンス
FCOS—Cosine オペコード 命令 説明 D9 FF FCOS ST(0) をその余弦で置き換える。 説明 ST(0) レジスタ内のソース ・ オペランドの余弦を計算し、 結果を ST(0) にス トアする。 ソース ・オペランドはラジアン単位の± 263 の範囲内の値でなければな ら ない。 以下の 表に、 オーバフローもアンダフローも発生しないものとして、 さまざまなクラスの数の 余弦を計算した と き に得 ら れる結果を示す。 注 : F 有限実数を示す。 * 浮動小数点無効算術オペランド (#IA) 例外を示す。 ソース ・ オペラン ド が許容可能な範囲を超えた場合は、 FPU ステータス ・ ワー ドの C2 フラグがセッ ト され、 ST(0) レ ジス タの値は以前の ま ま変わ ら ない。 この命令は、 ソ ー ス ・ オペラ ン ド が範囲外で も 例外を発生しない。 プ ロ グ ラ ムの責任で、 C2 フラグを調べ て範囲外条件の有無を確認しなければな ら ない。 ± 2 63 の範囲を超える ソース値は、 2 π の適切な整数倍を引 く か、 または除数を 2 π として FPREM 命令を使用して、 命令の許 容範囲内に縮小で き る。 操作 ST(0) SRC ST(0) DEST −∞ * −F −1 ~ +1 −0 +1 +0 +1 +F −1 ~ +1 +∞ * NaN NaN IF |ST(0)| < 263 THEN C2 ← 0; ST(0) ← cosine(ST(0)); ELSE (*source operand is out-of-range *) C2 ← 1; FI; FPU 影響を受けるフラグ C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト され る。 不正確結果例外 (#P) が発生した場合は、 丸めの方向を示 す。 0 = 切り上げなし、 1 = 切り上げ。 C2 が 1 の場合は未定義。 C2 ソース・オペランドが± 2 63 の範囲外の場合は 1 にセッ ト さ れる。 範囲内の場合は 0 にク リアされる。 C0、 C3 未定義。 第 3 巻 : IA-32 基本命令リファレンス 3:479
- Seite 440 und 441: CMOVcc—Conditional Move ( 続き
- Seite 442 und 443: CMP—Compare Two Operands オペ
- Seite 444 und 445: CMPS/CMPSB/CMPSW/CMPSD—Compare St
- Seite 446 und 447: CMPS/CMPSB/CMPSW/CMPSD—Compare St
- Seite 448 und 449: CMPXCHG—Compare and Exchange (
- Seite 450 und 451: CMPXCHG8B—Compare and Exchange 8
- Seite 452 und 453: CPUID—CPU Identification オペ
- Seite 454 und 455: CPUID—CPU Identification ( 続き
- Seite 456 und 457: CPUID—CPU Identification ( 続き
- Seite 458 und 459: CWDE—Convert Word to Doubleword
- Seite 460 und 461: DAS—Decimal Adjust AL after Subtr
- Seite 462 und 463: DEC—Decrement by 1 ( 続き ) #AC
- Seite 464 und 465: DIV—Unsigned Divide ( 続き ) FI
- Seite 466 und 467: ENTER—Make Stack Frame for Proced
- Seite 468 und 469: ENTER—Make Stack Frame for Proced
- Seite 470 und 471: F2XM1—Compute 2 x -1 ( 続き )
- Seite 472 und 473: FADD/FADDP/FIADD—Add オペコー
- Seite 474 und 475: FADD/FADDP/FIADD—Add ( 続き )
- Seite 476 und 477: FBLD—Load Binary Coded Decimal
- Seite 478 und 479: FBSTP—Store BCD Integer and Pop
- Seite 480 und 481: FBSTP—Store BCD Integer and Pop (
- Seite 482 und 483: FCLEX/FNCLEX—Clear Exceptions オ
- Seite 484 und 485: FCMOVcc—Floating-Point Conditiona
- Seite 486 und 487: FCOM/FCOMP/FCOMPP—Compare Real (
- Seite 488 und 489: FCOMI/FCOMIP/FUCOMI/FUCOMIP—Compa
- 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 ( 続き
FCOS—Cosine<br />
オペコード 命令 説明<br />
D9 FF FCOS 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 />
ST(0) SRC ST(0) DEST<br />
−∞ *<br />
−F −1 ~ +1<br />
−0 +1<br />
+0 +1<br />
+F −1 ~ +1<br />
+∞ *<br />
NaN NaN<br />
IF |ST(0)| < 263<br />
THEN<br />
C2 ← 0;<br />
ST(0) ← cosine(ST(0));<br />
ELSE (*source operand is out-of-range *)<br />
C2 ← 1;<br />
FI;<br />
FPU 影響を受けるフラグ<br />
C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト され<br />
る。<br />
不正確結果例外 (#P) が発生した場合は、 丸めの方向を示<br />
す。 0 = 切り上げなし、 1 = 切り上げ。<br />
C2 が 1 の場合は未定義。<br />
C2 ソース・オペランドが± 2 63 の範囲外の場合は 1 にセッ ト<br />
さ れる。 範囲内の場合は 0 にク リアされる。<br />
C0、 C3 未定義。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:479