- ベストアンサー
アキュムレータに格納される数値は・・・?
次の問題の解き方をできるだけ詳しく教えてください。 主記憶装置の100番地~104番地の内容は以下のようであるとき、LD/(102)を実行した結果アキュムレータに格納される数値は? LD命令は指定した有効アドレスの内容をアキュムレータに格納するめいれいであり、(X)は間接アドレス指定である。すなわちX番地の内容を 有効アドレスにするという意味である。 103 102 100 101 104 100番地 101番地 102番地 103番地 104番地
- その他([技術者向] コンピューター)
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問文中に (X)は間接アドレス指定である。すなわちX番地の内容を 有効アドレスにするという意味である。 と書かれているので、Xを102で置き換えると答えがわかるのでは?
その他の回答 (1)
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を格納 解き方というより、問題の読み方を書いてみましたが、答えも出てしまいましたね。
関連する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のプログラムカウンタがプログラムをとってこいと 命令しすぎって主記憶装置上におけなくなるからだと思います。 あってる??? たしかプログラムカウンタって次に命令するアドレスの番地を おいてあるんだっけ、、、、、 間違ってたら大恥です。 教えてください。
- ベストアンサー
- その他(PCパーツ・周辺機器)
- インデックスアドレス指定方式とベースアドレス指定方式の違い
アドレス指定方式(アドレシング)についての質問です。 タイトルの通り、インデックスアドレス指定方式とベースアドレス指定方式の違いを教えていただきたいです。 参考書などでは、 ●インデックスアドレス指定方式 ・命令の番地部とインデックスレジスタの値を加算した値を有効アドレスとする ・インデックスレジスタの内容を変えるだけで別なアドレスの内容が参照できる ●ベースアドレス指定方式 ・命令の番地部が指定するアドレスに、ベースレジスタの内容を加算した値を有効アドレスとする ・ベースレジスタの値を変えるだけでプログラムが主記憶装置のどこからでも実行できる(再配置可能) となっています。 有効アドレス=番地部のアドレス+レジスタの値 となるのが同じで、基準となる値がインデックスアドレス指定方式のほうでは命令の番地部であり、ベースアドレス指定方式のほうはベースレジスタの値、ということまではわかったのですが、この「基準」が違うことでどういう違いがあるのか、具体的にどういう場合にどちらの方式が使われるのかがわかりません。 ベースアドレス指定方式の「再配置可能」という部分もどういう仕組みなのか、よくわからないです。 ご回答、よろしくお願いいたします。
- ベストアンサー
- その他(OS)
- アドレスレジスタは物理的に存在しますか?
情報系の勉強している、初心者です。 アドレス修飾というところを今勉強中です。 命令が読み出しから実行終了までのステップを 段階 関係するレジスタ等 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になるのでしょうか^-^? よろしくお願いします。
- ベストアンサー
- その他(パソコン)
お礼
ありがとうございました。