4 論理シフト命令

論理シフト命令は、左シフト(SLL)と右シフト(SRL)の2つがある。いずれも、符号無し整 数を取り扱い、前者は$ 2^n$倍、後者は$ 2^{-n}$倍する。論理シフト命令は、符号は考慮 していない。

4.1 論理左シフト(SLL)

4.1.1 内容

命令語 SLL
語源 Shift Left Logical (shift:移す left:左 logical:論理上の)
役割 レジスタの内容をnビット左に移動させる。空いたビットには、 0が入る。これは、符号無し整数を$ 2^n$倍しているのと同じ。
書式 教科書(p.65)の通り。第一オペランドは汎用レジスター。第二オ ペランドはアドレス。
機能 教科書(p.65)の通り
フラグレジスタ 教科書(p.65)の通り。

この命令は、符号無し整数を$ 2^{n}$倍する。従って、シフトにより空いたビットには、0 が入る。

4.1.2 使用例

      SLL   GR0,2        ;GR0の内容を2ビット左へシフト
      SLL   GR0,0,GR1    ;GR0の内容をGR1の値、左へシフト

4.2 論理右シフト(SRL)

4.2.1 内容

命令語 SRL
語源 Shift Right Logical (shift:移す right:右 logical:論理上の)
役割 レジスタの内容をnビット右に移動させる。空いたビットには、 0が入る。これは、符号付き整数を$ 2^{-n}$倍しているのと同じ。
書式 教科書(p.67)の通り。第一オペランドは汎用レジスター。第二オ ペランドはアドレス。
機能 教科書(p.67)の通り
フラグレジスタ 教科書(p.67-68)の通り。

この命令は、符号無し整数を$ 2^{-n}$倍する。従って、シフトにより空いたビットには、 符号ビットが入る。

4.2.2 使用例

      SRL   GR0,2        ;GR0の内容を2ビット右へシフト
      SRL   GR0,0,GR1    ;GR0の内容をGR1の値、右へシフト

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年10月22日


no counter