• ベストアンサー

CASLIIのLD GR3,0,GR1とLD GR3,GR1の表記法の違いについて

こんにちは、CASLIIを勉強しているのですが疑問点が出てきたので質問させて頂きます。 例えば LD GR3,0,GR1 LD GR3,GR1 のように、LDのレジスタ間の間に0を入れることがありますが、有効アドレスを算出するときに0を加算しても同じ結果なのでこれは意味がないのではありませんか?これを入れる必要性がわかりません。 GR1が目的のデータではなく、目的のデータが格納されているアドレスのときにこういう表記をしなくてはならないとあったのですが、これもその為ですか? 拙い文章で申し訳ありませんが、どなたかご理解のある方は教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

LD GR3,GR1 の場合は、GR1 の内容がGR3にロード(設定)されます。 LD GR3,0,GR1 の場合は、実効アドレス(0+GR1の内容をアドレスとして)の内容がGR3にロードされます。 アドレスが、BUF のようにラベルで判っていれば LD GR3,BUF で良いわけですが、参照したいアドレスがレジスタに格納されている時は LD GRn, 基準アドレス,指標アドレス の様に指定して基準アドレス+指標アドレス が実際にアクセスするアドレスになります。(なので実効アドレスという) この場合、GR1 にBUF のアドレスが入っているとしてそのアドレスをそのまま使ってアドレスの内容を持ってくればいいのですが、 そのために0 を指定しています。

good_listener
質問者

お礼

レス有難うございます。 丁寧なレスでとても理解できました。 ありがとうございます。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

例えば、GR1=2でアドレス2番地に4が格納されていたら、 LD GR3,GR1→GR3=2 LD GR3,0,GR1→GR3=4 ――になるかと。 直接と間接の違い。

good_listener
質問者

お礼

レス有難うございます。 なるほど、番地か内容かの違いですね。

関連するQ&A