2017-10-07 13 views
0

私はブースアルゴリズムの作業を知っています。ブースアルゴリズムと右シフト

は、我々が持っている被乗数M = 01011

と乗数Q = 01110

我々は( -^1 2^4 2)としてQを書くことができたとします。

Q = 0とQ(-1)= 0が続い行うと算術 - :

だから乗算は2^4(M)+ 2(-M)

今すぐブースのアルゴリズム規則があるに減少し右シフト。

Q = 1かつQ(-1)= 0ならば、A-Mと算術右シフトを行う。

Q = 0かつQ(-1)= 1ならば、A + Mと算術右シフトを行う。

Q = 1かつQ(-1)= 1なら、算術右シフトを行う。

は、ここでAは00000に初期化され、我々は右シフトを行うすべてのステップで、アルゴリズムが表示される場合はQは(-1)0

に初期化されます。しかし、上の2^4(M)+ 2(-M)の計算では、左シフトを必要とする16と2を掛けます。

ブースのアルゴリズムは右シフトでどのように動作しますか?私はその背後の直感を得ることができません。

答えて

0

このようなブースのアルゴリズムは、MとQの両方がWビットの乗算M * Qの上位Wビットを生成します。

結果は、アキュムレータAに配置され、Wビットも含まれます。 SHR acc, 1; RCR low, 1シーケンスを使用して、特にアセンブラで低ビットを回復することも可能です。

関連する問題