KATUBLO | エンジニアの日常BLOG

プログラミング、数学、旅行などを中心に役立つ情報をお届け

2018年11月19日

【アセンブリ言語】シフト命令の処理を解説

今回なぜ記事を書いたか?

大学で履修した「アセンブリ言語」の中間テスト対策のための内容整理。

 

シフト命令とは?

シフト命令は上で説明したように、ビットをずらす命令である。 左にずらすか、右にずらすか、ずらすデータが符号付き整数か、符号なし整数(もしくは数値以外のデータ)かによって4種類のソフト命令が用意されている。

 

↑以下のサイトより引用

 

算術左シフト命令

SLA:Shift Left Arithmetic

 

特徴

•1番左の符号bitが不変

•ずらして空いた部分には0bitが入る

•OFには押し出されるbitが入る

 

サンプル

 

*算術シフトの場合、最上位bitにつく符号bitはシフトされないので注意。

 

算術右シフト命令

SRA:Shift Right Arithmetic

 

特徴

•1番左の符号bitが不変

ずらして空いた部分には符号bitが入る

•OFには押し出されるbitが入る

 

SRAの最大の特徴は「ずらして空いた部分には符号bitが入る」という点である。

 

 

サンプル

 

*算術シフトの場合、最上位ビットにつく符号ビットは1bit(シフトするbit数分)横にコピーされる形でずれる。

 

論理左シフト命令

SLL:Shift Left Logical

 

特徴

•1番左の符号bitが可変

•ずらして空いた部分には0bitが入る

•OFには押し出されるbitが入る

 

サンプル

 

論理右シフト命令

SLL:Shift Right Logical

 

特徴

•1番左の符号bitが可変

•ずらして空いた部分には0bitが入る

•OFには押し出されるbitが入る

 

サンプル

 

 

算術シフト、論理シフトの特徴をまとめる

 

算術シフト

•符号bitが不変

 

論理シフト

•符号bitが可変

 

 

 

アセンブラ言語を学ぶ上でおすすめの参考書

 

ARMで学ぶ アセンブリ言語入門

↑良さげな参考書。実際、大学の授業やネットで調べるよりも参考書でじっくり勉強した方が身につくと思います。将来有望な情報工学を学ぶ学生は基礎力を学生のうちに身に付けるのが大切であると思うので、リンク先の参考書を一目通して置くと良いかもしれません。

最後まで読んで頂き、ありがとうございました。
SNS等でのシェアが頂ければ幸いです!

プロフィール

@KATUO

現在都内私立大学に通う大学4年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習を開始。現在は「ToC向け大規模サービスを運営するメガベンチャー」と「AIスタートアップ」でインターンで修行中。2020年4月からwebエンジニアとして社会人生活スタート。

広告

特集記事