24531904_j
24531904_j 24531904_j
FFREE—Free Floating-Point Register オペコード 命令 説明 DD C0+i FFREE ST(i) ST(i) のタグを空に設定する。 説明 ST(i) レジスタに関連する FPU タグ ・ レジスタ内のタグを空(11B) に設定する。 ST(i) お よび FPU スタック ・ ト ップ ・ ポインタ (TOP) の内容は影響を受けない。 操作 TAG(i) ← 11B; FPU 影響を受けるフラグ C0、 C1、 C2、 C3 未定義。 浮動小数点例外 なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト 保護モード例外 #NM CR0 の EM または TS がセッ ト された場合。 実アドレス・モード例外 #NM CR0 の EM または TS がセッ ト された場合。 仮想 8086 モード例外 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )。 #NM CR0 の EM または TS がセッ ト された場合。 3:490 第 3 巻 : IA-32 基本命令リファレンス
FICOM/FICOMP—Compare Integer オペコード 命令 説明 DE /2 FICOM m16int ST(0) を m16int と比較する。 DA /2 FICOM m32int ST(0) を m32int と比較する。 DE /3 FICOMP m16int ST(0) を m16int と比較し、スタック・レジスタをポップする。 DA /3 FICOMP m32int ST(0) を m32int と比較し、スタック・レジスタをポップする。 説明 ST(0) レジスタの値を整数ソース ・ オペランド と比較し、 結果に従ってFPU ステータ ス ・ ワ ー ド の条件 コ ー ド ・ フ ラ グ C0、 C2、 C3 をセッ ト する ( 以下の表を参照 )。 整数値 は、 比較が行われる前に拡張実数フ ォ ー マ ッ ト に変換される。 条件 C3 C2 C0 ST(0) > SRC 0 0 0 ST(0) < SRC 0 0 1 ST(0) = SRC 1 0 0 順序付けなし 1 1 1 こ れ ら の命令では、 「順序付けなし比較」 を実行す る。 順序付けなし比較は、 さ ら に比較 対象の 2 つの数値のクラスのチェックも行う。 どちらかのオペランドが NaN であるか、 ま たは その フ ォ ー マ ッ ト が定義 さ れていない場合は、 条件フ ラ グが 「順序付けなし」 に 設定 さ れる。 ゼ ロ の符号は無視 さ れる。 すなわ ち、 -0.0 = +0.0 である。 FICOMP 命令は、 比較後に レ ジ ス タ ・ ス タ ッ ク を ポ ッ プす る。 レ ジ ス タ ・ ス タ ッ ク を ポップするため、 プロセッサはST(0) レジスタを空としてマークし、 スタック ・ ポイン タ (TOP) を 1 インク リ メン トする。 操作 CASE (relation of operands) OF ST(0) > SRC: C3, C2, C0 ← 000; ST(0) < SRC: C3, C2, C0 ← 001; ST(0) = SRC: C3, C2, C0 ← 100; Unordered: C3, C2, C0 ← 111; ESAC; IF instruction = FICOMP THEN PopRegisterStack; FI; FPU 影響を受けるフラグ C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト さ れ、 発生しなか っ た場合は 0 にクリアされる。 C0、 C2、 C3 前ペー ジの表を参照。 第 3 巻 : IA-32 基本命令リファレンス 3:491
- 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 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 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 540 und 541: FSAVE/FNSAVE—Store 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 オペコー
FICOM/FICOMP—Compare Integer<br />
オペコード 命令 説明<br />
DE /2 FICOM m16int ST(0) を m16int と比較する。<br />
DA /2 FICOM m32int ST(0) を m32int と比較する。<br />
DE /3 FICOMP m16int ST(0) を m16int と比較し、スタック・レジスタをポップする。<br />
DA /3 FICOMP m32int ST(0) を m32int と比較し、スタック・レジスタをポップする。<br />
説明<br />
ST(0) レジスタの値を整数ソース ・ オペランド と比較し、 結果に従ってFPU ステータ<br />
ス ・ ワ ー ド の条件 コ ー ド ・ フ ラ グ C0、 C2、 C3 をセッ ト する ( 以下の表を参照 )。 整数値<br />
は、 比較が行われる前に拡張実数フ ォ ー マ ッ ト に変換される。<br />
条件 C3 C2 C0<br />
ST(0) > SRC 0 0 0<br />
ST(0) < SRC 0 0 1<br />
ST(0) = SRC 1 0 0<br />
順序付けなし 1 1 1<br />
こ れ ら の命令では、 「順序付けなし比較」 を実行す る。 順序付けなし比較は、 さ ら に比較<br />
対象の 2 つの数値のクラスのチェックも行う。 どちらかのオペランドが NaN であるか、<br />
ま たは その フ ォ ー マ ッ ト が定義 さ れていない場合は、 条件フ ラ グが 「順序付けなし」 に<br />
設定 さ れる。<br />
ゼ ロ の符号は無視 さ れる。 すなわ ち、 -0.0 = +0.0 である。<br />
FICOMP 命令は、 比較後に レ ジ ス タ ・ ス タ ッ ク を ポ ッ プす る。 レ ジ ス タ ・ ス タ ッ ク を<br />
ポップするため、 プロセッサはST(0) レジスタを空としてマークし、 スタック ・ ポイン<br />
タ (TOP) を 1 インク リ メン トする。<br />
操作<br />
CASE (relation of operands) OF<br />
ST(0) > SRC: C3, C2, C0 ← 000;<br />
ST(0) < SRC: C3, C2, C0 ← 001;<br />
ST(0) = SRC: C3, C2, C0 ← 100;<br />
Unordered: C3, C2, C0 ← 111;<br />
ESAC;<br />
IF instruction = FICOMP<br />
THEN<br />
PopRegisterStack;<br />
FI;<br />
FPU 影響を受けるフラグ<br />
C1 ス タ ッ ク ・ アンダ フ ロ ーが発生した場合は 0 にセッ ト さ<br />
れ、 発生しなか っ た場合は 0 にクリアされる。<br />
C0、 C2、 C3 前ペー ジの表を参照。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:491