情報処理概論のプログラムカウンタと命令レジスタについての疑問

このQ&Aのポイント
  • プログラムカウンタと命令レジスタの関係や役割についてわかりやすく教えてください
  • 演算装置についての教科書の内容について、具体的な例を使って説明していただけませんか?
  • 情報処理概論の勉強中でわからない部分があり、プログラムカウンタと命令レジスタ、演算装置について質問です
回答を見る
  • ベストアンサー

情報処理概論

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

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

  • ベストアンサー
  • hatayan
  • ベストアンサー率26% (17/65)
回答No.1

はじめまして。 1.プログラムカウンタは、「次に実行する命令が入っている番地」を記録しているところです。  メモリは、1バイト単位に番地が区切られています。番地が1増えると、1バイト分次の番地を指します。  4バイト命令であれば、1つの命令に4バイト分のメモリを使うので、「その次の命令の場所」は4バイト先、つまり番地が4つ進みます。  だからプログラムカウンタには、現在の値に4が加えられます。  例えば、30番地にある4バイト命令を実行したら、次の命令は34番地。  プログラムカウンタは、30から34に変わります。 2.「101011001101番地の内容を、アキュムレータの内容に加える」という命令です。加えた結果は、アキュムレータに入ります。  最初の4ビット(0100)が「命令」で、残りの12ビット(1010 11001101)が「番地」を指しています。  つまり、命令(0100)に従い、「指示した番地(1010 11001101)に入っているデータをアキュムレータに足しなさい」ということです。  長い回答になってしまいましたが、CPUの基本的な処理手順です。このレベルでは昔も今も基本は変わっていません。最初が大変ですが、コンピュータアレルギーで無い限り必ず慣れてきます。

関連するQ&A

  • 情報学についての質問です。

    考えても理解できなかったので教えてもらえるとうれしいです。 問 配列A,Bに正負の符号と絶対値の十進数をアスキーコードで表された値が入力されている。正負は0の時'#'、負の時は'-'で表され、続いて絶対値が一桁10進数の文字表現として代入されている。 (a)符号と絶対値がそれぞれCL,ALレジスタに与えられているとき、その値を8ビット符号付き整数としてBLレジスタに入力するsubroutinABSのフローチャートと命令コードを書く。 (b)配列A、Bの値をそれぞれ8ビット符号付き整数に変えた後、それらの和をDLレジスタに求める命令を書く。(a)のsubroutinを使う。 (c)(b)でDLレジスタに求められた8ビット符号付き整数を正負の符号と絶対値をアスキーコードで表し下の配列Cに入れる。この処理のフローチャートと命令コード書く。 DL:1111 1111B   のとき、  C: '-'、'1'  とする。 詳しい解説とともに解答していただけるとありがたく思います。お願いします。

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

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

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

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

  • 情報の問題

    インターネットで調べたのですが下の問題が解けるようになりません。 解答を見ればなんとなく理解できる気がするので、どなたか解答お願いします。 (1)32ビット符号なし整数がDX_AXレジスタに与えられているとき、この値を2倍したものを、再びDX_AXレジスタに求める命令をかけ。ただし、オーバーフローは考えなくてよい。 (2)2つの32ビット整数a,bがDX_AX,CX_BXレジスタに与えられているとき、a-bの値を求め再びDX_AXレジスタに代入する命令を示しなさい。

  • 機械語

    番地機械語ニモニック表記コメント 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分くらい止まらなかったのですが・・・

  • この2つの問題解ける人?(基本情報処理)

    以下の2つの質問に関して分かる人いませんか? ○17年、秋、4問 p を2以上の整数とする。任意の整数 n に対して, n = kp + m (0 ≦ m < p ) を満たす整数 k と m が一意に存在する。この m を n の p による剰余といい, n mod p で表す。 (-10000) mod 32768 に等しくなるもの はどれか。 A、 22768 mod 32768です。 まず、問題の意味からよく分からないのですが、誰か詳しく教えていただけないでしょうか? ○17年、秋、19問 動作クロック周波数が 700 MHz の CPU で,命令の実行に必要なクロック数とその命令の出現率が表に示す値である場合,この CPU の性能は約何 MIPS か。 ・レジスタ間演算、実行に必要なクロック数=4 出現率=30% ・メモリ・レジスタ間演算、実行に必要なクロック数=8 出現率=60% ・無条件分離、実行に必要なクロック数=10 出現率=10% で、答えが、70です。 1命令実行時間が7(クロック)というのは分かるのですが、 700×10*6/7という計算をなぜやるのか分からないです。

  • フリーズ、

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

  • ワンボードマイコンMP-Z80を用いたプログラミング

    今、ワンボードマイコンMP-Z80でプログラミングの勉強をしています。 まだ、基本的なところなんですが、次の問題がわかりません。 1)8100H番地から81FFH番地までの100Hバイト分のRAM領域を0とする プログラムを作成せよ。 2)1から10までの整数の和を求め、8100H番地に格納せよ。 3)8100H番地から810FH番地に格納されているデータを8ビットの符号付 絶対値表現とみなしたとき、各データを2の補数表現に変換し、8200H番地から格納せよ。 この三つの問題なんですが、1)は全部に0を入れるということでしょうか? これらの問題は繰り返し命令の範囲の問題なので、繰り返し命令を 使うそうです。ヒントだけでも教えてください。

  • PLCの命令語の使い方について

    PLCのラダープログラムを勉強し始めたところの初心者です。 各種PLCには様々な命令語が用意されています。(基本命令、応用命令、演算命令など) これらの基本命令について、個々の動作については取扱説明書を読めば理解できますが、 実際にこれらの命令を使って装置のプログラムを書くときに、何をどう使うことが有効なのか? この辺りがよくわかりません。 たとえば、データシフト命令について、内部レジスタを右にシフトしたり左にシフトしたり。 そういうことができるのはわかりますが、じゃあそれを使ったら装置ではどんなことができるのでしょうか? データ転送命令などもよくわかりません。MOV命令でデータをレジスタに格納できることはわかりましたが、これが何の役に立つのやら… 全くの初歩的な質問で申し訳ないですが、取扱説明書を隅々まで読んでいますが、命令語の基本的な機能については紹介してくれていますが、実世界での使い方については全くと言っていいほど触れられていません。 どんな時に、こうした命令語が有効なのか?具体的な例を教えていただければ幸いです。 また、そうした具体例をまとめたようなサイトがあれば併せてご教授いただけませんでしょうか。 よろしくお願いします。

  • CASLとフラグレジスタ

     私は今CASLの勉強をしています。  今はLD命令や分岐命令を使ってプログラムを作っているのですが、LD命令のフラグレジスタの設定の説明がよくわからないところがあるのです。  それは、LD命令は転送する値によってFRが決まるということですよね。それは、転送を命令された番地の数字(すなわち番地名)なのか、それともその番地に入っている値そのものなのかがなかなか調べても出てきません。  初心者な質問ですが、どなたか回答よろしくお願いします。