• ベストアンサー

アキュムレータに格納される数値は・・・?

次の問題の解き方をできるだけ詳しく教えてください。 主記憶装置の100番地~104番地の内容は以下のようであるとき、LD/(102)を実行した結果アキュムレータに格納される数値は? LD命令は指定した有効アドレスの内容をアキュムレータに格納するめいれいであり、(X)は間接アドレス指定である。すなわちX番地の内容を 有効アドレスにするという意味である。 103     102    100    101    104 100番地   101番地  102番地  103番地  104番地

noname#45629
noname#45629

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

  • ベストアンサー
  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

質問文中に (X)は間接アドレス指定である。すなわちX番地の内容を 有効アドレスにするという意味である。 と書かれているので、Xを102で置き換えると答えがわかるのでは?

その他の回答 (1)

noname#38060
noname#38060
回答No.2

CPUの種類が書かれていないので、ここに書かれた情報を解析してみます。 >主記憶装置の100番地~104番地の内容は以下のようである >103     102    100    101    104 >100番地   101番地  102番地  103番地  104番地 ちょっと見難いので次のように書き直します。 100番地の内容→103 101番地の内容→102 102番地の内容→100 103番地の内容→101 104番地の内容→104 >LD命令は指定した有効アドレスの内容をアキュムレータに格納するめいれい これは、LD/Xと書いた時、アキュームレータにX番地の内容を格納するということです。 LX/100→アキュームレータに100番地の内容を格納      =103を格納 LX/101→アキュームレータに101番地の内容を格納      =102を格納 LX/102→アキュームレータに102番地の内容を格納      =100を格納 LX/103→アキュームレータに103番地の内容を格納      =101を格納 LX/104→アキュームレータに104番地の内容を格納      =104を格納 >(X)は間接アドレス指定である。すなわちX番地の内容を 有効アドレスにするという意味である これは、(X)と書いた時は、X番地の内容をアドレスとして更にその番地の内容を使うと言う意味です。 (X)は(X番地の内容)番地の内容ということができます。 X番地の内容がYであれば、(X番地の内容)番地の内容はY番地の内容です。 ややこしいですが、具体的には以下のようになります。 LX/(100)→アキュームレータに(100番地の内容)番地の内容を格納      =103番地の内容を格納      =101を格納 LX/(101)→アキュームレータに(101番地の内容)番地の内容を格納      =102番地の内容を格納      =100を格納 LX/(102)→アキュームレータに(102番地の内容)番地の内容を格納      =100番地の内容を格納      =103を格納 LX/(103)→アキュームレータに(103番地の内容)番地の内容を格納      =101番地の内容を格納      =101を格納 LX/(104)→アキュームレータに(104番地の内容)番地の内容を格納      =104番地の内容を格納      =104を格納 解き方というより、問題の読み方を書いてみましたが、答えも出てしまいましたね。

noname#45629
質問者

お礼

ありがとうございました。

関連するQ&A

  • 機械語

    番地機械語ニモニック表記コメント 0 11101000 Shift 8 ;無駄な命令.ただしAccumulatorの内容は0になる 1 10011111 Store 31 ; Accumulator の内容を31 番地へ格納 2 01100001 Load 1 ; 1 番地のデータ(Store 命令) をAccumulator へ 3 01000110 Sub 6 ; 6 番地の内容(= 1) をAccumulator から引く 4 10000001 Store 1 ; 引いた結果を1 番地に格納 5 01100111 Load 7 ; 7 番地の内容(= 0) をAccumulator へ 6 00000001 Jump 1 ; 1 番地にジャンプする 7 00000000 0 ; 0 データの保管場所 このプログラムが停止するのはどんなときですか? これを実行したら3分くらい止まらなかったのですが・・・

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

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

  • アセンブラの間接アドレッシング

    間接アドレッシングの意味は曖昧ながらも分かるのですが、実際どうしたらいいのか分かりません。下の例を間接アドレッシングに直して誰か説明してもらえませんか?お願いします。 このプログラムは記録場所500~999と1500~1999の差を求めて2500~2999に収納するプログラムです。 命令アドレス  命 令   コメント  13→0 LD   500 -----------     1 SB   1500 差を求めて記憶     2 ST   2500 -----------     3 LD    0r -----------     4 AD    15r  0番地の命令を変更     5 ST    0r -----------     6 LD    1r -----------     7 AD    15r  1番地の命令を変更     8 ST    1r -----------     9 LD    2r -----------     10 AD    15r 2番地の命令を変更     11 ST    2r -----------     12 SB    16r 2番地の命令と16番地の擬似命令を比較     13 NG    0r     14 HT        15      4 アドレス部に加える定数1     16 ST   3000 定数(擬似命令)

  • STH命令

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

  • フリーズ、

    どうしてパソコンはフリーズするのでしょうか? 予想としては主記憶装置にプログラムを置けなくなった、 と考えています。CPUのプログラムカウンタがプログラムをとってこいと 命令しすぎって主記憶装置上におけなくなるからだと思います。 あってる??? たしかプログラムカウンタって次に命令するアドレスの番地を おいてあるんだっけ、、、、、 間違ってたら大恥です。 教えてください。

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

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

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

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

  • 概略フローチャート

    次の命令の概略フローチャートを書きたいのですが、 LD A,1 LD (8100),A LD A,2 LD (8101),A HALT という8100番地に1を8101番地に2を入れる命令です。 この概略フローチャートってこんなんでいいのでしょうか? START ↓ 1を読み込む ↓ 指定番地に1を移す。 ↓ 2を読み込む ↓ 指定番地に2を移す。 ↓ END お願いします。

  • 情報処理概論

    今情報処理概論という勉強をしています。教科書をよんでもわからないので2つ質問です。 1.プログラムカウンタと命令レジスタ  例えばプログラムカウンタが”2256040”であるとき、次のフェッチサイクルではこの番地からはじまる命令が命令レジスタに移され移された命令が4バイト命令であれば、プログラムカウンタには4が加えられる。、と教科書に書いてあるのですがチンプンカンプンです。誰かわかりやすいように説明していただけますか? 2.演算装置について  例えば”01001010 11001101”と表記されている命令は、あるコンピュータでは”1010 11001101”にある16ビット符号付整数を演算装置のレジスタ(アキュムレーター)の内容に加え、その結果(和)をアキュムレーターにセットすることを意味する。、と教科書に書いてあります。まったく意味不明なので誰かわかりやすく説明できる人回答お願いします。 ながくなりましてすいません。よろしくお願いします。

  • 機械語の命令について

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