浮動小数点数というのは、小数点以下(1より小さい数)を表現できる数値形式です。普通の小数あるいは実数(精度は有限)と考えてかまいません。「浮動」というのは、小数点以下の桁数を固定しないという趣旨です。かつてはプログラムによってソフトウェア的に実現されていたこともあったようですが、現在ではほとんどハードウェアの機能として提供されています。
科学計算や解析をしたいような場合には、整数だけではなく、小数が扱えることが必要となります。Mopsは、その処理のために小数用の特別なスタックを利用します。小数を処理するためのワードは、オプションとして定義されています。これが使えるようになるには、次のようにしてファイルをロードしておかなければなりません。
// floating point \ (68k)Mopsの場合
// zfloating point \ PowerMopsの場合
(iMopsの場合は、あらかじめロードされています。)
"//"の代わりにNEEDも使えます。pointの手前には半角空白があります(これらはファイル名です)。Mopsウィンドウ上ではこれを<ENTER>してください。FP stackと表示された新しいスタックビューが右側に表れるでしょう(OS Xではすぐにはビューが再描画されないかも知れません。)。
また、数値表示形式は10進(decimal)にしておく必要があります(16進(hex)モードでは使えません。)。
なおiMopsでは、FPワードはデフォルトでロードされており、初めからFPスタックも表示されています。
小数値の表示
上記のファイルをロードした後は、コンマを用いて小数点以下をぶら下げた数値表示をすれば、それは小数であるものと解釈され、浮動小数点数スタックに押し込まれます。小数点以下がない場合には、.0をぶら下げてください。この0は省略できません。別様に解釈されてしまいます。
3.14159 \ FPスタックに3.14159が積み込まれる
3.0 \ 浮動小数点数としての3がFPスタックに積み込まれる
10進表示モードでは自然科学などで用いられる「10の何乗」を使った表記法も利用できます。
314159E-5 \ FPスタックに3.14159を積み込む
3E+0 \ 浮動小数点数としての3がFPスタックに積み込まれる
Eはexponential(指数)の意味で、後ろに足したり引いたりしている数値は
…×10^(…)
の"( ... )"部分に当たると考えることができます。ですから、+0は省略することもできますし、正の値を加えることもできます。:
5E+2 \ 浮動小数点数としての500(=5×10^2)がFPスタックに積み込まれる
浮動小数点数スタックに対する
スタック効果コメントは、前にも述べたように、コメントの括弧内の初めに"F:"をつけて整数スタック効果コメントとは別個に表記します。
PowerMopsおよびiMopsの浮動小数点数は一貫して8バイトを用いるいわゆるダブル精度の小数です。ハードウェア自体が、ダブル精度小数をデフォルトとしているため、シングル精度にするには、わざわざ精度を落とす手間が必要となります。
関連項目:
最終更新:2019年11月25日 20:02