アドレス指定方式での、命令語が参照する番地とは?

このQ&Aのポイント
  • アドレス指定方式での命令語が参照する番地について説明します。命令語の仕様やアドレス修飾部と参照番地の関係、主記憶やレジスタの状態についても解説します。
  • アドレス指定方式では、命令語が参照する番地を指定することができます。命令語の仕様やアドレス修飾部、参照番地の関係、主記憶やレジスタの状態に影響を与える要素について解説します。
  • アドレス指定方式では、命令語が参照する番地を指定することができます。命令語の仕様やアドレス修飾部、参照番地の関係、主記憶やレジスタの状態について詳しく解説します。
回答を見る
  • ベストアンサー

アドレス指定方式での、命令語が参照する番地

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)、自分の解き方が正しいのかどうか自信がありません。どなたか補足、訂正などありましたら、よろしくお願いいたします。

  • IRAM
  • お礼率58% (17/29)

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

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

> 8~10ビットの001がレジスタになるから、3 ここは1でしょう。4ビットと勘違いかも。 あとの解き方は正しいと思います。

IRAM
質問者

補足

そうでした。勘違いしていました。 0011ではなくて001ですね。 すると1ですね。 ymmasayanさん、ありがとうございました!

関連するQ&A

  • インデックスアドレス指定方式とベースアドレス指定方式の違い

    アドレス指定方式(アドレシング)についての質問です。 タイトルの通り、インデックスアドレス指定方式とベースアドレス指定方式の違いを教えていただきたいです。 参考書などでは、 ●インデックスアドレス指定方式 ・命令の番地部とインデックスレジスタの値を加算した値を有効アドレスとする ・インデックスレジスタの内容を変えるだけで別なアドレスの内容が参照できる ●ベースアドレス指定方式 ・命令の番地部が指定するアドレスに、ベースレジスタの内容を加算した値を有効アドレスとする ・ベースレジスタの値を変えるだけでプログラムが主記憶装置のどこからでも実行できる(再配置可能) となっています。 有効アドレス=番地部のアドレス+レジスタの値 となるのが同じで、基準となる値がインデックスアドレス指定方式のほうでは命令の番地部であり、ベースアドレス指定方式のほうはベースレジスタの値、ということまではわかったのですが、この「基準」が違うことでどういう違いがあるのか、具体的にどういう場合にどちらの方式が使われるのかがわかりません。 ベースアドレス指定方式の「再配置可能」という部分もどういう仕組みなのか、よくわからないです。 ご回答、よろしくお願いいたします。

  • 2アドレス方式について

    アセンブラ初心者なのですが、2アドレス方式について教えてください。 32ビットCPUでADD ansの1アドレスでやる場合、命令部16ビットと番地アドレス部16ビットとされると思いますが、ADD ans,bの場合(2アドレス)の場合、命令部とアドレス部はどうなるんでしょうか?

  • 機械語の命令について

    例えばアセンブラでいうところの LD xxxx という命令は、 「xxxx番地のデータをレジスタに記憶する。」 らしいのですが、LDという命令もアドレスxxxxも2進数 で表現されていますか? そうだとして、どんな論理回路で、最終的にレジスタの電圧が1になるのでしょうか^-^? よろしくお願いします。

  • 命令

    lw r1,0(r4) 上記のような命令を実行したとします。レジスタ群r4には32ビット00000000000000000000000000100100が入っています。これは10進数にすると36なので0(r4)=0+36=36になります。 そしてメインメモリのアドレス36番地には10000001111111111111111111111111が入っていてこれをレジスタ群r1に移動します。 けれどもレジスタ群r1には00000000000000000000000000011000が最初から入っています。 ここで質問なんですがこの場合アドレス36番地の値と最初から入っていたレジスタ群r1の値は足さなければならないのですか? それともアドレス36番地の値をそのままレジスタ群r1につっこんでもいいのでしょうか?

  • STH命令

    次の命令はどういう処理でしょうか。 STH 5,60(4,2) 5番レジスタの内容を、ベースレジスタ2にインデックスレジスタ4のデータを加算しさらに60バイト加算して求めた主記憶装置のアドレスに格納するのでしょうか。 60(4,2)は主記憶装置のアドレスですか?

  • CPUの回路について教えてほしいです!

    ・5ビットCPU:CPUが5ビットずつ読み出し専用メモリからデータを取り込む。 ・レジスタ:2ビットを記憶できるレジスタを1つ持っている。 ・アドレス空間:CPUは2ビットの異なるアドレスを参照できる。 ・メモリ:読み出し専用メモリと書き込み専用メモリを持っている。読み出し専用は5ビット、4ワード。書き込み専用は2ビット、1ワード ・機械語:5ビット中、上位3ビットがOPコード、下位2ビットがオペランドとなる。 ・命令:CPUの命令は以下の5種類。 ・加算命令:レジスタの値とオペランドの値を加算し、その値をレジスタにセット。 ・減算命令:レジスタの値からオペランドの値を減算し、その値をレジスタにセット。 ・ロード命令:オペランドの値をレジスタにセット。 ・ストア命令:書き込み専用メモリにレジスタの数値を書き込む。下位2ビットは無視される。 ・ジャンプ命令:オペランドの値が示す読み出し専用メモリのアドレスに書かれた命令を次に実行する命令とする。 このような仕様にに基づくUPUの回路図を教えてください。 また減算命令、ジャンプ命令、メモリへの書き込みをするような回路について文章でよいので説明していただけるとありがたいです。

  • ○番地セルと△番地セルを参照し、一致していたらIFで結果を出したい

    ○番地セルと△番地セルを参照し、一致していたらIFで結果を出したい エクセル2003です。 A列に名前、B列に学部、C列に点数があります。 7行目より、各部の合格点があります。 ●Aさんが何学部かを参照させ、一致したら、更に平均点に届いている場合は○、そうでなければ×としたいです。 IFとANDの組み合わせをしようと、式を書いたのですが、エラーが出ます。 HPでは、数値でのネストが主で、文字の場合はどうするかを検索しても出ず困っています。

  • コンピュータアーキテクチャの問題です

    (1)レジスタ、メモリに初期状態が以下表である時 レジスタ GR0 7 GR1 2 番地 データ 100 10 110 8 120 3 5÷3の計算を行うための一連の命令をニーモニック表現で示せ 値はすべて10進数とする。 ただし以下の3条件に従うこと 1.最初の命令をLI1、100とする 2.計算結果は120番地に格納すること 3.最低1回は命令でXRを指定すること。 (2)ハードウェア障害によってGR2とメモリの120番地が使用不能となったものとして、5÷3の計算を行うための一連の命令をニーモニック表現で示せ。 初期状態は(1)の開始時と同様とし、(1)とはことなり最初の命令は制限がない。 計算結果は110番地に格納すること。 という問題ですがわかる人教えてください。よろしくお願いします

  • アドレスレジスタは物理的に存在しますか?

    情報系の勉強している、初心者です。 アドレス修飾というところを今勉強中です。 命令が読み出しから実行終了までのステップを    段階      関係するレジスタ等 1. 命令の取り出し:命令アドレスレジスタ,命令レジスタ 2. 命令の解読:デコーダ,演算装置(演算命令の場合) 3. 有効アドレス計算:アドレスレジスタ,主記憶装置 4. データの取り出し5. 命令の実行:演算装置(演算命令の場合) 6. 演算結果格納:主記憶装置 ・・と説明しています。(一部省略している部分があります。)  そこで、この流れが意味することがいまいちつかめないし、覚えられないので パソコンの中をみて確かめようと思いました。 使っているノートパソコンのメモリーは取り出せました。が、一番知りたかったCPUはどこにあるのか分からなかったので、インターネットでアドレスレジスタや命令レジスタを視覚的にとらえられないかといろいろ調べましたが・・イメージ図は出てくるのですが写真は見つけられませんでした。 アドレスレジスタ・デコーダ等が実際に存在するのか、アドバイスお願いします。

  • オペランド

    基本情報技術者の問題でわからないところがあったので教えてください。 【問題】 機械語命令のインデックス就職によってオペランドアドレスを指定する場合、表に示す値のときの有効アドレスはいくらか? 【答え】 110 【表】 インデックスレジスタの値 10 命令語のアドレスの値  100 命令が格納されているアドレス 1000 【質問】 オペランドの意味はわかりますが、どうしてこうなるのわかりません。(問題の意味がわかってないかも)