目次

シフト処理

 シフト処理は、乗算やレジスタの特定ビットのセット
 リセットをする場合に使うことが多いでしょう。

 自分の場合、次のようなときにシフト処理を使います。

 シフトのワードは、以下。

 これらのワードを利用し、自分が使うときの処理を実験します。

 2のべき乗の値を知りたい

  左シフトを利用すれば、2の8乗、2の12乗を求められます。



 数値の中の指定ビットの値を使いたい

  左シフトで指定ビットをセット。
  論理積を使い、指定ビットのみ取得して、右シフトでLSB(最下位ビット)
  まで移動させて、表示してみます。



 スイッチのチャタリングを除去したい

  ピンを入力に設定してから、時間をおいて1ビットずつ入力し
  連続して2ビットか3ビットが同じ論理値になれば、その値と
  して採用します。



 乗算を高速で実現したい

  2のべき乗を利用して、7倍するようなときは
  左シフトを使っています。




  16ビット、32ビットのマイコンでは、乗算命令が
  あるのが普通ですが、8ビットでは用意されない
  ことも多いです。
  そこで、シフトを利用して2のべき乗を使って
  加算を繰り返すよりも、高速で計算させるときに
  使います。

 レジスタの中の指定ビットのセット、リセット

  レジスタの中で、指定ビットのセット、リセットを使う場面は
  マイコン内蔵のモジュールを利用するときでしょう。

  A/Dコンバータのための初期化を通して、指定ビットのセット
  リセットを見ていきます。




  最後のワードを定義では、特定ビットのセット、リセットに
  シフトのワードを利用するとともに、スタック内に複数の数値
  を入れて、論理和で合体しています。

  論理和で数値を合体していくとき、その値をCPUの
  レジスタを使うのではなく、スタックに入れてます。

  CPUの中のレジスタが少ないマイコンにとっては
  レジスタの数が、無尽蔵と解釈できます。


目次

inserted by FC2 system