FCMP
|
浮動小数点比較
|
FCMP
|
Floating-point CoMPare
|
【構文】
FCMP src, src2
【オペレーション】
src2 - src;
【機能】
- | src2に格納された単精度浮動小数点数と、srcに格納された単精度浮動小数点数を比較し、その結果にしたがってフラグが変化します。 |
- | 非正規化数の扱いは、FPSWのDNビットによって変化します。 |
【命令フォーマット】
|
|
|
|
|
|
FCMP src, src2
|
|
#IMM:32
|
Rs2
|
|
|
Rs
|
Rs2
|
|
|
[Rs].L
|
Rs2
|
|
|
dsp:8[Rs].L(注)
|
Rs2
|
|
|
dsp:16[Rs].L(注)
|
Rs2
|
|
注 | 弊社の「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
|