基本情報23年特別 午後 問1 設問2

【問題を解く前に】

 ここの問題は結局、実効アドレスの問題だとわかると思います。
 この、実効アドレスの計算の仕方の違いは、フラグDとIで指定されます。

 そこで、この計算方法とDとIの関係をまとめておきます。

●方法1 実効アドレスを使わない=ソースレジスタを使う方式
 D=1、I=0のときで、表3に書かれているとおり、レジスタの内容を使います。

 選択肢イのケースで、イは、
 R2で指定されたレジスタ(=レジスタ2)の内容(=100)がR1にセットされます

●方法2 実効アドレスを使うが、指標レジスタ修飾はしない
 D=1、I=1の場合にあたります。表2の3番目のケースです。

 これは選択肢オのケースで、オは

 実効アドレス=R2で指定されたレジスタ(=レジスタ3)の内容(=101)

 R1の値は、実効アドレス(=101番地)に格納されている内容(=100)なので
 R1には、100がセットされます

●方法3 指標レジスタ修飾、間接アドレスは使わない
 D=0(指標レジスタを使うには2語命令にしないとできない) I=0のケース

 これは選択肢ウのケースで、ウは

 実効アドレス=adrの内容(=0)+X(=レジスタ3)で指定された内容(=101)
       =101番地

 R1の値は、実効アドレス(=101番地)に格納されている内容(=100)なので
 R1には、100がセットされます

●方法4 指標レジスタ修飾、間接アドレス
 D=0(指標レジスタを使うには2語命令にしないとできない) I=1のケース

 これは選択肢ア、エのケースで、アは

 実効アドレス=(adrの内容(=0)+X(=レジスタ2)で指定された内容(=100))の内容
       =(100番地)の内容=101
        
 R1の値は、実効アドレス(=101番地)に格納されている内容(=100)なので
 R1には、100がセットされます

【解き方】

いままで、計算してきて、すべて100になりました。ということは、正解は、残りのエ?

エは、

 実効アドレス=(adrの内容(=0)+X(=レジスタ3)で指定された内容(=101))の内容
       =(101番地)の内容=100
        
 R1の値は、実効アドレス(=100番地)に格納されている内容(=101)なので
 R1には、101がセットされてしまいます

【答え】

【解き終わって】

●もっと短時間で答えに到達したい場合。

この問題は「誤りを探す」なので、仲間はずれは1個だけのはずです。

 そしてこの問題の違いは、DとIだけです。
 そして、アとエは、レジスタが違う、他は実効アドレスの求め方が違います。

 設問2の組み合わせをみると、レジスタが違えば、答えが違いそうです。
 だから、アかエがあやしいと、絞り込めます(たまに、こういうやりかたは外れるけど)


●まったく問題がわからず、あてずっぽうで正解に行きたい場合

 で、アかエに絞られたとしたら、ウは正解なわけです。
 ここで、エを正解にしてしまうと、同じアドレスを見て、違うアクセス方法なのに、同じ結果?
 これって、結構怪しくない?

 ということで、エが怪しいと気づきます。

この方法は、やたらめったら使うべきではないです。
(正解に行き着かないことも多い)
ただ、まったく思いつかないときには有効です。
(誤りが1個だけのときには・・・)