HOME»基本情報技術者試験掲示板»平成30年春期 午後問12 設問2
投稿する
平成30年春期 午後問12 設問2 [1483]
悪戦苦闘さん(No.1)
LD命令には、ふと、おやっと思うことが度々あり、頭が混乱しています。
例えば、
GR1には、文字領域の先頭アドレスが入っています。
LD GR6,GR1 → 文字領域の先頭アドレスをGR6にコピーする。
つまり、GR6には、データとして、アドレスが入っています。
ラベルLP内の
LD GR4,0,GR6 → GR6に入っているアドレスが示すデータ(1文字)をGR4にコピーする。
また、ラベルNUM内の
LD GR1,GR6 → GR6に入っているアドレスをGR1にコピーする。
といった具合です。
なぜ、
LD GR1,GR6 → GR6に入っているアドレスが示すデータををGR1にコピーする。
とは、ならないのでしょうか。
LD GR4,0,GR6は、指標レジスタ「0」が入っているから、0,GR6の部分が主記憶上のアドレスを示し、そのアドレスに格納されているデータと考え、
LD GR6,GR1やLD GR1,GR6は、レジスタ間のやりとりなので、GR6は元々レジスタに入っているデータ(アドレス)と考えるのでしょうか。どなたか考え方を教えてください。
よろしくお願いいたします。
例えば、
GR1には、文字領域の先頭アドレスが入っています。
LD GR6,GR1 → 文字領域の先頭アドレスをGR6にコピーする。
つまり、GR6には、データとして、アドレスが入っています。
ラベルLP内の
LD GR4,0,GR6 → GR6に入っているアドレスが示すデータ(1文字)をGR4にコピーする。
また、ラベルNUM内の
LD GR1,GR6 → GR6に入っているアドレスをGR1にコピーする。
といった具合です。
なぜ、
LD GR1,GR6 → GR6に入っているアドレスが示すデータををGR1にコピーする。
とは、ならないのでしょうか。
LD GR4,0,GR6は、指標レジスタ「0」が入っているから、0,GR6の部分が主記憶上のアドレスを示し、そのアドレスに格納されているデータと考え、
LD GR6,GR1やLD GR1,GR6は、レジスタ間のやりとりなので、GR6は元々レジスタに入っているデータ(アドレス)と考えるのでしょうか。どなたか考え方を教えてください。
よろしくお願いいたします。
2018.10.14 19:03
助け人さん(No.2)
★FE ゴールドマイスター
問題用紙巻末の「アセンブラ言語の仕様」のロード命令を解釈します。
LD r1, r2 … r1 ← (r2)
r1レジスタにr2レジスタの内容(データだろうがアドレスだろうが)をロード
LD r, addr [, x] … r ← (実効アドレス)
rレジスタにaddrまたはaddr, xのアドレスにある内容をロード
したがって、GR1の内容をGR0にロードするときは
LD GR0, GR1と書き、
GR1に入っているアドレスにある内容をGR0にロードするときは
LD GR0, 0, GR1と書きます。
LD r1, r2 … r1 ← (r2)
r1レジスタにr2レジスタの内容(データだろうがアドレスだろうが)をロード
LD r, addr [, x] … r ← (実効アドレス)
rレジスタにaddrまたはaddr, xのアドレスにある内容をロード
したがって、GR1の内容をGR0にロードするときは
LD GR0, GR1と書き、
GR1に入っているアドレスにある内容をGR0にロードするときは
LD GR0, 0, GR1と書きます。
2018.10.14 20:03
悪戦苦闘さん(No.3)
助け人さん、この度もありがとうございます。
また一つ、スッキリしました。
これからも納得がいくまで、粘り強く頑張ります。(^^)
また一つ、スッキリしました。
これからも納得がいくまで、粘り強く頑張ります。(^^)
2018.10.14 21:06