質問: 現在基本情報技術者試験の勉強をしているのですが、分からない所があるので教えて頂きたいです。 プログラミングのご質問ではないので、質問しても良いものか迷ったのですが他の質問サイトなどでは答えが得られなかったので、ネットワーク関連に詳しい方もこのサイトならおられると思いご質問させていただくことにしました。。。 具体的にはCPUの命令実行サイクルのアドレス指定方式について、理解できない部分があります。 そもそも、CPUの命令実行サイクルとは、 1命令フェッチ 2命令の解読 3実行アドレス計算 4オペランド読み出し 5命令の実行 の、5つの要素から構成されていると思います。 ですが、厳密にはアドレス指定方式により、 1 ↓ 2 ↓ そして、3の前に、アドレス部にある対象データが格納されたアドレスを計算で出し、その後、そのアドレスを3の実行アドレス計算にかけ対象データを求める。という風に考えているのですが、このような解釈で合っていますでしょうか...?
回答: 「実行アドレス」は「実効アドレス」の間違いですね。 「3の前」というのは無くて、2で調べた命令中のレジスタ指定(あれば)やオフセット値(あれば)、即値(あれば)等を使って3で実効アドレスを算出します。 > > そもそも、CPUの命令実行サイクルとは、 > > > と書いてありますが、お書きの1~5は、「メモリからデータを読み込んで演算する」という種類の命令に限った物で、これ以外にも、メモリをアクセスしない命令や、メモリに書き込む命令とか、他にも色々あります。 あと、「5命令の実行」というのも表現がおかしくて1~5全体で「命令の実行」です。5は演算の実行ではないですか。