3 算術シフト命令

算術シフト命令は、左シフト(SLA)と右シフト(SRA)の2つがある。いずれも、符号付き整 数を取り扱い、前者は$ 2^n$倍、後者は$ 2^{-n}$倍する。算術シフト命令は、符号も考慮 していることが重要である。

3.1 算術左シフト(SLA)

3.1.1 内容

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

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

3.1.2 使用例

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

3.2 算術右シフト(SRA)

3.2.1 内容

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

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

3.2.2 使用例

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

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


no counter