乗算の致命的なバグを修正

0.6 ~ 0.9 の乗算の結果を正しく得られなかったバグを修正

原因は0x0000fxxx * 0x0000fxxx の結果で 0xfxxxxxxx などとなる場合に
レジスターが SInt32 なのでマイナスとして扱われてしまうため。

そこで小数側16bitのうち、先頭1ビットを捨てて15ビットとして扱うことで回避した。

レジスターに符号無しのUInt32型を使う方法が不明なので、このようなトリックで回避している。