基本情報技術者試験⑪アセンブラ(CASLⅡ) シフト演算 SLA、SRA、SLL、SRLについて | パソコン教室アイのブログ

パソコン教室アイのブログ

子どもから大人までプログラミング教えます。

シフト演算命令には

 

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命令(算術右シフト演算)

 

を使うと、

 

わり算ができることを書きます。