2017-04-19 8 views
0

特に固定小数点演算を使用してMIPSアセンブリでいくつかのコードを実装する必要があります。私は何かを逃したのか、そこにそのようなことはないのですか? MIPSの一部ではない場合、どのように整数を使って固定小数点を実装できますか?それはadd/sub/mul/divですか?MIPSの固定小数点演算器

答えて

2

あなただけの整数演算をサポートするプロセッサを必要とする固定小数点演算コードを実装します。もちろん、一部のプロセッサには固定小数点コードを最適化するための命令がいくつかありますが、必須ではありません。

任意の固定小数点コードでは、まず数値の整数部分と小数部分を表現するのに必要なビット数を決定する必要があります。加算、減算、乗算、および除算を行う通常の命令を使用します固定小数点演算を実行します。

Q formatに関するこのWikipediaの記事では、Q記法の概念と、この概念に基づいて基本的な固定小数点演算を行う方法について説明します。この記事のコード例はC言語で書かれていますが、MIPS basic arithmetic instructionsでも同じことができます。

1

MIPSは32ビットで、withと小数部をどのように並べ替えることができますかfixed<w,b>。暗黙的に2進小数点を調整することができます。 addsubは簡単な数式を使用し、mul/divの場合はとsrlという命令を使用できます。

ここではそれをうまく説明するリンクがあります。

http://www-inst.eecs.berkeley.edu/~cs61c/sp06/handout/fixedpt.html

+2

@ ArekBulski with mul/div。 Mulはより多くの小数点ビットを作成して(ちょうど数学を計算します)、後で右にシフトすることができます(上半分からシフトインしながら)。divは小数点を使い切るので、左にシフトしたいかもしれません半分)前に。しかし、必ずしもそうではなく、あなたはあなたが行くにつれてあなたのフォーマットを任意に変えることができ、mul/divのペアでは、フォーマットの変更は通常キャンセルされます。 – harold

関連する問題