アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは、CASLIIを勉強しているのですが疑問点が出てきたので質問させて頂きます。

例えば
LD GR3,0,GR1
LD GR3,GR1
のように、LDのレジスタ間の間に0を入れることがありますが、有効アドレスを算出するときに0を加算しても同じ結果なのでこれは意味がないのではありませんか?これを入れる必要性がわかりません。

GR1が目的のデータではなく、目的のデータが格納されているアドレスのときにこういう表記をしなくてはならないとあったのですが、これもその為ですか?

拙い文章で申し訳ありませんが、どなたかご理解のある方は教えてください。よろしくお願いします。

A 回答 (2件)

例えば、GR1=2でアドレス2番地に4が格納されていたら、



LD GR3,GR1→GR3=2
LD GR3,0,GR1→GR3=4

――になるかと。
直接と間接の違い。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/10/17 13:46

LD GR3,GR1


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

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

お礼日時:2006/10/17 13:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!