FCMP

浮動小数点比較

FCMP

Floating-point CoMPare


【構文】

FCMP src, src2

 

【オペレーション】

src2 - src;

 

【機能】

-

src2に格納された単精度浮動小数点数と、srcに格納された単精度浮動小数点数を比較し、その結果にしたがってフラグが変化します。

-

非正規化数の扱いは、FPSWのDNビットによって変化します。

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

src

src2

FCMP src, src2

L

#IMM:32

Rs2

7

L

Rs

Rs2

3

L

[Rs].L

Rs2

3

L

dsp:8[Rs].L(注)

Rs2

4

L

dsp:16[Rs].L(注)

Rs2

5

弊社の「RXファミリ アセンブラ」では、ディスプレースメントの値(dsp:8、dsp:16)は、4の倍数を指定してください。dsp:8には、0〜1020(255×4)が指定できます。dsp:16には、0〜262140(65535×4)が指定できます。命令コードには、1/4した値が埋め込まれます。

 

【フラグ変化】

フラグ

C

Z

S

O

CV

CO

CZ

CU

CX

CE

FV

FO

FZ

FU

FX

変化

条件

Z:src2 == srcのとき“1”、それ以外のとき“0”になります。

S:src2 < srcのとき“1”、それ以外のとき“0”になります。

O:比較結果が順序化不能のとき“1”、それ以外のとき“0”になります。

CV:無効演算が発生したとき“1”、それ以外のとき“0”になります。

CO:常に“0”になります。

CZ:常に“0”になります。

CU:常に“0”になります。

CX:常に“0”になります。

CE:非実装処理が発生したとき“1”、それ以外のとき“0”になります。

FV:無効演算が発生したとき“1”、それ以外のときは変化しません。

FVフラグは、例外処理許可ビットEVが“1”の場合は変化しません。O、S、Zフラグは、例外処理が発生した場合は変化しません。

 

【記述例】

FCMP    R1, R2
FCMP    [R1], R2