FSUB
|
浮動小数点減算
|
FSUB
|
Floating-point SUBtract
|
【構文】
FSUB src, dest
【オペレーション】
dest = dest - src;
【機能】
- | destに格納された単精度浮動小数点数から、srcに格納された単精度浮動小数点数を減算し、その結果をdestに格納します。結果はFPSWのRM[1:0]ビットにしたがって丸められます。 |
- | 非正規化数の扱いは、FPSWのDNビットによって変化します。 |
- | 同一の符号を持つsrc、destの差が正確に0であるときは、-∞方向への丸めモードの場合を除いて、結果は+0になります。-∞方向への丸めモードの場合は、結果は-0になります。 |
【命令フォーマット】
|
|
|
|
|
FSUB src, dest
|
|
#IMM:32
|
Rd
|
|
|
Rs
|
Rd
|
|
|
[Rs].L
|
Rd
|
|
|
dsp:8[Rs].L(注)
|
Rd
|
|
|
dsp:16[Rs].L(注)
|
Rd
|
|
注 | 弊社の「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:演算の結果が“+0”または“-0”のとき“1”、それ以外のとき“0”になります。
S:演算の結果、符号部(ビット31)が“1”のとき“1”、“0”のとき“0”になります。
CV:無効演算が発生したとき“1”、それ以外のとき“0”になります。
CO:オーバフローが発生したとき“1”、それ以外のとき“0”になります。
CZ:常に“0”になります。
CU:アンダフローが発生したとき“1”、それ以外のとき“0”になります。
CX:精度異常が発生したとき“1”、それ以外のとき“0”になります。
CE:非実装処理が発生したとき“1”、それ以外のとき“0”になります。
FV:無効演算が発生したとき“1”、それ以外のときは変化しません。
FO:オーバフローが発生したとき“1”、それ以外のときは変化しません。
FU:アンダフローが発生したとき“1”、それ以外のときは変化しません。
FX:精度異常が発生したとき“1”、それ以外のときは変化しません。
【記述例】
FSUB R1, R2
FSUB [R1], R2
|