《アセンブラ言語》レジスタの種類、役割についてわかりやすく解説

Network

レジスタの基本

レジスタとは何か

一般に、論理回路において、フリップフロップなどにより状態を保持する装置をレジスタと呼ぶ。コンピュータにおいては、プロセッサが内蔵しているそれを指す。プロセッサには、プログラムが読み書きできるレジスタ以外に、プロセッサ自身が動作するためのレジスタがあり、内部レジスタなどと呼ばれる。

https://ja.wikipedia.org/wiki/レジスタ_(コンピュータ)

簡単にまとめると、CPUの中の主要な部品であり命令やデータを保持する機能を持っています。またCPU(central processing unit)はレジスタの集合であるとも言われたりします。

レジスタの種類

アキュムレータ

アキュムレータ(英: Accumulator)は、コンピュータにおいて、演算装置による演算結果を累積する、すなわち総和を得るといったような計算に使うレジスタや変数のことである。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

https://ja.wikipedia.org/wiki/アキュムレータ_(コンピュータ)

演算装置が計算した値を保持するのがアキュムレータの役割です。「xxx番地の値をアキュムレータに格納して、後の処理でアキュムレータに入っている値と100の比較して、その条件によって行う処理を変える」といったような、一旦値を保存するのに使われます。

フラグレジスタ

一般にステータスレジスタは、そのプロセッサの命令による様々な演算などの結果などに関して「あふれが生じた」であるなどといったような対処が必要な場合がある事象に関する状態(ステータス)を示すフラグと、割込みなどといったシステムを制御する状態を示すフラグとから成る。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

https://ja.wikipedia.org/wiki/ステータスレジスタ

フラグレジスタは別名、ステータスレジスタとも呼ばれます。フラグレジスタは演算処理をした後のCPUの状態を保存する役割を持ちます。

プログラムカウンタ

プログラムカウンタとは、マイクロプロセッサ内部でデータを保持するレジスタの一種で、次に実行すべき命令が格納されているメモリ上の番地(アドレス)を保存しているもの。また、その保存しているアドレス値。「PC」と略記されることもある。

出典:プログラムカウンタ 【 program counter 】 PCレジスタ / 命令アドレスレジスタ

http://e-words.jp/w/プログラムカウンタ.html

CPUが次に実行する命令のアドレスが保存されています。CPUがある処理を終えて次の処理に取り掛かるとき、このプログラムカウンタを見れば次に処理すべき命令がわかります。

ベースレジスタ

ベースレジスタとは、マイクロプロセッサ(MPU/CPU)内部の記憶装置であるレジスタの一種で、アクセスしたいメモリ上の番地(アドレス)の基準値や先頭位置を記憶しておくためのもの。

出典:ベースレジスタ 【 base register 】 基底レジスタ

http://e-words.jp/w/ベースレジスタ.html

確保したメモリ領域の中である程度大きいデータを保持しなくてはいけない場面で、そのデータの先頭アドレスを保存します。次に紹介するベースレジスタとセットで使うことで実際のアドレスを求めることができます。

インデックスレジスタ

一般的にはベースレジスタ(base register:基底レジスタ)と組み合わせて用いられ、ベースレジスタの指し示すメモリ上の番地(ベースアドレス)からの相対距離を格納する。配列データなどを扱う際に、インデックスレジスタに現在扱っている要素が先頭から何番目かを記憶しておくことで、簡潔なコードで容易にデータにアクセスすることができる。

出典:インデックスレジスタ 【 index register 】 指標レジスタ

http://e-words.jp/w/インデックスレジスタ.html

先ほど紹介したベースレジスタとセットで使うことで、実際のアドレスを求めることができます。ベースレジスタがどの配列を表しており、インデックスレジスタが配列のキーを表しているイメージです。なのでこれらをセットで使うことでメモリの実際のアドレスを参照することができます。

汎用レジスタ

汎用レジスタはレジスタの中でオールラウンダー的な存在で、各状況によってそれぞれ異なった用途で使用されます。とはいえ主な役割はデータ保存などです。計算途中の値などがそれに該当します。

命令レジスタ

命令レジスタとは、マイクロプロセッサ(MPU/CPU)内部の高速な記憶装置であるレジスタの一種で、実行する命令の内容を格納するもの。

出典:命令レジスタ 【 instruction register 】 インストラクションレジスタ

http://e-words.jp/w/命令レジスタ.html

こいつがCPU(Central processing unit)の正体です。命令レジスタがメモリ上に展開された命令を読み出して処理を実行します。

筆者
筆者

今回の記事ではさくっとレジスタの概要について解説しました。より詳しい原理を学びたい方は以下の本を読むことをおすすめします。プログラムが動く原理を非常にわかりやすく解説されています。

エンジニアにおすすめのアイテム

記事の内容とは別に、僕自身が保有する業務効率アップ、スキルアップを後押しするお勧めアイテムを紹介します。割とガチでお勧めなのです。

目の保温マッサージ

エンジニアの1日の業務は大半がディスプレイと睨めっこ。帰宅すると目が疲労で非常に重くなります。ひどい時は軽い頭痛になったりと結構深刻。そこで僕自身が毎日使っているのが目元マッサージ機です。

アイマッサージャー 二年間保証 最新グラフェン加熱技術 目元マッサージャー

アイマッサージャーを使ってから、翌日の疲労感がだいぶ軽減されました。またマッサージ自体とっても気持ち良くて、布団に入るのが毎日楽しみになりました。コスパまじで最強アイテムです。

座椅子をゲーミングチェア風に

ディスプレイの長時間利用と同時にエンジニアは座椅子の上に何時間も座る運命にあります。椅子が快適だと疲労度が大きく変わると思った私は以下の2点のアイテムを購入しました。

IKSTAR クッション 低反発 座布団 第五世代 オフィス IKSTAR クッション 低反発【メーカー直営・1年保証付】 ランバーサポート

気に入りすぎて、オフィス用だけではなく、自宅用も購入してしまいました。導入してから長時間座ることでのお尻の痛みや、腰の痛みが激減しました。なので体の健康を考えるなら、導入するべきアイテムですね。

タイトルとURLをコピーしました