> 2007/03/24 (土) 17:25:37 ◆ ▼ ◇ [qwerty]> > リロケータブルなプログラムを作る場合
> > 配列a[10]からなるワンセットのプログラムを
> > メモリ上のセグメント100~110から
> > 違うセグメントの200~210に移して実行したい場合
> > ベースアドレス指定方式であれば
> > ベースレジスタ中の値を100から200に書き換えれば簡単にできるってことらしいけど
> > インデックスアドレス指定方式であっても各々の命令語中のインデックスレジスタアドレスが指し示す
> > インデックスレジスタの値に+100すれば可能なんでは?(;´Д`)
> > http://oshiete1.goo.ne.jp/qa2079427.html
> > ここの1番目の回答で
> > >2は相当難しいです。
> > と書いてる理由がいまいちわからん(;´Д`)
> インデックスなんかさわったらあかんで(;´Д`)
> それはローダのやることちゃうんや!
> メモリダンプみてもindexの値が意味を持たなくなるやろ?
インデックスアドレス指定方式が便利なのは
配列a[10]の中身を次々と表示したい場合
for(i=1;i<=10;i++)
{
printf("値は%dです\n",a[i]);
}
この添え字iのようにインデックスレジスタの内容を変えれば
一度ロードしたプログラムを再利用できるから演算が高速にできて
便利ってことじゃないのん?(;´Д`)
参考:2007/03/24(土)17時16分24秒