next up previous
: この文書について... : COMET IIのレジスタ : スタックポインタ

指標レジスタ(index register)

これは、特殊なレジスタで、ハードウェアーは汎用レジスタが兼ねます。汎用 レジスタのうちGR1〜GR7をつかいます。GR0を使わない理由、これはマシン語 との関係で、後の授業で述べます。

教科書の図2.5の表現は分かりにくいので、具体例でその動作を示します。例 えばクラス40人分の数学と英語と電子計算機のテストの点が、メモリに格納さ れており、それぞれの平均点を求めたい場合、指標レジスタを使うと便利です。 このプログラムでは、それぞれの教科のクラスの合計点を計算するところが、 重要です。指標レジスタを使う場合と使わない場合のフローチャートを図 4に示します。

指標レジスタを使わないと、プログラムが大変でしょう。このように、指標レ ジスタを使うことにより、基準点からのアドレスを加算してそのデータにアク セスできます。このように、アドレスを操作することをアドレス修飾と言いま す。

実は、皆さんは、これと同じプログラムテクニックをFORTRANの授業で学んだ はずです。FORTRANの配列と同じです。FORTRANでは分かりにくいのですが、C 言語の配列はまさにこれと同じことを行っています(実感できます)。

図 4: 指標レジスタを使った場合と使わない場合のプログラム。クラス の数学のテストの合計点を計算している。GR1を指標レジスタとして使って いる。
\includegraphics[keepaspectratio scale=0.9]{./figure/index_register.eps}


yamamoto 平成16年6月1日


no counter