アドレス指定方式での、命令語が参照する番地
16進数で”C13B0206”という32ビットの命令語があります。
<命令語の仕様>
0~7ビット:命令指示部
8~10ビット:レジスタ
11~15ビット:アドレス修飾部
16~31ビット:番地
<アドレス修飾と参照番地の関係>
00 0固定 直接アドレス
(11,12の値が00、13~15の値が0固定のとき、直接アドレス。)
01 0固定 間接アドレス
10 インデックスレジスタ インデックスレジスタ+番地の値
11 インデックスレジスタ インデックスレジスタ+番地が示す内容の値
<主記憶、レジスタの状態>
●主記憶に格納されている値(16進数)
番地(16進数)が
202,203,204,205,206,208,209,20A...の順に、それぞれの格納値は、 203,204,205,206,208,209,20A,20B...。
●インデックスレジスタに格納されている値(16進数)
インデックスレジスタ番号(16進数)が1,2,3,4,5… の順に、それぞれの格納値は、 0,1,2,3,4…。
(1) アドレス修飾部のインデックスレジスタ番号。
命令語の”C13B0206”で、アドレス修飾部にあたるのが”3B”。00111011(2進数)。8~10ビットの001がレジスタになるから、3。
(2)命令の番地部の番地の値(16進数)
命令の番地部の番地の値。命令部では、”0206”。ちょうど16進数なので、206。
(3) 命令が最終的に参照する番地。
上の、<主記憶、レジスタの状態>より、11~15ビットが”1011”。
インデックス番号が11(2進数)なので、3(16進数)。インデックスレジスタ番号が3のとき、格納されているのは2。番地の値である206と3を合わせ、209。
最終的に参照される番地は209。
(1)(2)(3)、自分の解き方が正しいのかどうか自信がありません。どなたか補足、訂正などありましたら、よろしくお願いいたします。
お礼
回答ありがとうございました!