2017年2月16日木曜日

アドレス指定方式: 間接アドレス指定

平成28年秋季 問9. 関節アドレス指定方式

問題文「間接アドレス指定方式のアドレス部で指定するものはどれか。」

解答群
ア. 処理対象データが格納されている記憶場所のアドレス
イ. 処理対象データが格納されている記憶場所のアドレスが格納されている記憶場所のアドレス
ウ. 処理対象データが格納されている記憶場所のアドレスとアドレス計算の基準点との差分
エ. 処理対象データ自体

今回改めて解くと正解した。冷静に考えるとなんとなく設問から答えが推測はできるけど、改めて考えてみる。

まずはグーグル先生に「アドレス指定方式」を聞いてみたところ、色々なサイトが紹介しているのはいつものことだ。

四コマで勉強する基本情報処理」さんでは、4コマでざっくりと解説した上で詳しく書いてくれている。が、多分何もわからずに詳細を見ると何が何だかわからないかもしれない。

『経営と情報』に関する教材と意見」さんは見た目非常に難しく書かれているが、ゆっくり追っていくとかなり細かいところまで書いてくれているのでお勧めである。

K-fix」さんは見た目が非常に綺麗に作られていて、視覚的にわかりやすい。しかし細かいところの理解と言う点では「『経営と情報』に関する教材と意見」には少しかなわないかもしれない。

全体的なお勧めは「『経営と情報』に関する教材と意見」さんと「K-fix」さんを見比べながら理解するのが良いのではないかと思う。

上記の解説を基に、解答群を見てみると、
ア.は直接アドレス指定
イ.は間接アドレス指定
ウ.はベース(基底)アドレス指定
エ.は即値アドレス指定
となっていて、正解はイ.となる。

詳細は自分でもこの記事を読み返しながら復習したいものの、まずは以下のように覚えたい。

まず、CPUの命令は「命令部」と呼ばれる命令を指定している部分と、「アドレス部」と呼ばれる指定した命令を実行する対象の部分とに分かれている。

この「アドレス部」に記述されている内容が何を指しているかによって「アドレス指定方式」と呼ばれるものが変わってくる、今回の問題はまさにその部分についての設問である。

即値アドレス方式というのは、アドレス部に「値そのもの」が入っているという意味になる。

直接アドレス指定は、アドレス部に入っている値が、メモリのアドレス番地を指しているという意味で、そのためアドレス部のビット数がそのまま指定できるアドレスの上限になる。
24bitだと16,777,215、つまり16メガビット相当しかメモリのアドレスを持てなくなるため、アドレス部の長さそのものが利用できるメモリの上限となる。
これは、64bitマシンが出てきて、理論的な上限がほとんどないに等しくなった今となっては少なすぎることはわかっていただけると思う。

間接アドレス指定は、アドレス部に入っている値が、さらにメモリのアドレス$20170216追記:を指定している場所$を指定しているため、直接アドレス部のような制限がなくなるという利点があるが、アドレス部に入っている番地を探し、さらにその番地に入っている番地に実際使う値があるという意味では2回以上メモリへのアクセスを必要とするため、実際にメモリアクセスにかかる時間はほかのアドレス指定方式よりも長くなると言える。

基底アドレス方式やインデックス方式は、基準となるアドレスに対してアドレス部の値を加算することで実際に利用する値が入っているアドレスを指定しているとざっくり考えた。基準の指定の方式が単純に違うものと思われるが、その点についてはまた後日ゆっくり考えたい。

今日は仕事が終わったのが23時すぎだったので、この辺で許してほしい。

0 件のコメント:

コメントを投稿