エンベデッドシステムスペシャリスト 2013年 午前2 問03
問題文
主記憶へのアクセスを伴う演算命令を実行するとき、命令解読とオペランド読出しの間に行われる動作はどれか。
選択肢
ア:実効アドレス計算(正解)
イ:入出力装置起動
ウ:分岐アドレス計算
エ:割込み発生
🔒 解説は解答すると表示されます
実効アドレス計算【午前2解説】
正解の理由
主記憶上のオペランドを使う演算命令では、命令を解読した後、オペランドが格納されている主記憶上の位置を求めてから、その内容を読み出します。
この位置を求める処理が実効アドレス計算です。したがって、命令解読とオペランド読出しの間に行われる動作はアです。
たとえば、命令が「基準となるアドレスに、指定された変位を加えた位置のデータを使う」という内容なら、その計算によってオペランドの格納場所を求めます。
解法ステップ
- 問題文から、命令が主記憶上のオペランドを使うことを確認します。
- 命令を解読し、オペランドの場所をどのように指定しているかを判断します。
- 主記憶からオペランドを読む前に、その格納場所を計算します。
- その動作に当たるアを選びます。
基本的な流れは、次のとおりです。
命令解読 → 実効アドレス計算 → オペランド読出し → 演算
選択肢別の誤答解説
-
ア 実効アドレス計算
オペランドが格納されている場所を求める処理です。オペランド読出しの前に必要となるため、正解です。 -
イ 入出力装置起動
入出力装置に対してデータの入出力を開始させる処理です。主記憶上のオペランドの場所を求める処理ではありません。 -
ウ 分岐アドレス計算
分岐命令などで、次に実行する命令のアドレスを求める処理です。演算命令のオペランドの格納場所を求める処理とは異なります。 -
エ 割込み発生
割込みは、外部装置からの要求や例外などによって、通常の命令実行の流れを変更する契機です。オペランド読出し前に必ず行う処理ではありません。
よくある誤解
-
実効アドレスとオペランドの値を混同する
実効アドレスは、オペランドが格納されている場所です。オペランドの値そのものではありません。 -
アドレス計算とデータ読出しを同じ処理だと考える
まず格納場所を計算し、その後で主記憶からデータを読み出します。順序を区別することが重要です。 -
分岐アドレス計算も同じものだと考える
分岐アドレスは次に実行する命令の位置、実効アドレスはオペランドの位置です。何のアドレスかを確認しましょう。
補足コラム
実効アドレスは、命令で指定された情報を使って求める、実際にアクセスするメモリアドレスです。たとえば、基底アドレスと変位を使う方式では、概念的に次のように計算します。
アドレス指定方式によって計算方法は異なりますが、「オペランドを読み出す前に、その場所を特定する」という役割は共通です。
FAQ
Q. 実効アドレスを計算したら、オペランドの読出しも完了していますか?
A. いいえ。実効アドレス計算で求めるのは格納場所です。その後、主記憶へアクセスしてオペランドを読み出します。
A. いいえ。実効アドレス計算で求めるのは格納場所です。その後、主記憶へアクセスしてオペランドを読み出します。
Q. すべての命令で実効アドレス計算が必要ですか?
A. いいえ。主記憶上のオペランドを参照しない命令では、実効アドレス計算が不要な場合があります。
A. いいえ。主記憶上のオペランドを参照しない命令では、実効アドレス計算が不要な場合があります。
関連キーワード: 実効アドレス、アドレス指定方式、オペランド、命令実行サイクル

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

