シフトの 使い方例

例えば評価したいデータ例として#1354 (0001 0011 0101 0100)があるとします。
そして、1のビット数を数えたい場合を考えてみます。(パリティチェックなどで使える)
評価方法は次のように、各ビットが1かどうかを、順番にチェックする方法があります。
初期時にGR1へ最初に評価すべき1を設定しておいて、そのビットのANDチェックで0か1の判定を行い、 左にずらしては次のビットの評価と繰り返します。

以上の考えで作成したプログラムを以下に示します。GR3で1の数を数えています。確認しまししょう。

他の方法として、シフト処理でレジスタからはみ出たビットはOF(overflow flag)に残るので、このOFを評価して数える方法も考えられます。考えてみまよう。
←わからない場合は、クリック