シフト演算命令には
SLA命令、SRA命令、SLL命令、SRL命令があって、
算術シフト演算命令が、SLA命令、SRA命令。
論理シフト演算命令が、SLL命令、SRL命令です。
前回のブログで、
CASLⅡには
たし算命令とひき算命令しかないのに、
SLA命令(算術左シフト演算)を使うと、
かけ算ができるということを書きました。
「SRA命令(算術右シフト演算)
を使うと、
わり算ができることを
次回書きます」
と言いましたが、
その前に、
論理シフト演算命令の、
SLL命令、SRL命令を
説明したいと思います。
----------------------------
SLL命令(論理左シフト演算命令)は、
左に2ビット移動しなさい
と命令がでたら、
1111111111111111 実行前
←←左に2ビット移動
1111111111111100← 実行後、空いた部分に0が埋め込まれる。
-----------------------------
SRL命令(論理右シフト演算命令)は、
右に2ビット移動しなさい
と命令がでたら、
1111111111111111 実行前
右に2ビット移動 →→
0011111111111111← 実行後、空いた部分に0が埋め込まれる。
--------------------------------
これに比べ
SLA命令、SRA命令は、
SLA命令(算術左シフト演算命令)は、
左に2ビット移動しなさい
と命令がでたら、
1111111111111111 実行前
←←左に2ビット移動
1111111111111100← 実行後、空いた部分に0が埋め込まれる。
1の部分は、符号ビットなのでシフトしない。
-----------------------------------
SRA命令(算術右シフト演算命令)は、
右に2ビット移動しなさい
と命令がでたら、
1111111111111100 実行前
右に2ビット移動→→
1111111111111111← 実行後、空いた部分に符号ビットと同じものが埋め込まれる。
1の部分は、符号ビットなのでシフトしない。
------------------------------------
次回は
SRA命令(算術右シフト演算)
を使うと、
わり算ができることを書きます。
