同一メモリ空間で、転送元の開始アドレス、転送先の開始アドレス、方向フラグ及び転送語数をパラメータとして指定することによって、データをブロック転送できる機能をもつCPUがある。図のようにアドレス1001から1004のデータをアドレス1003から1006に転送するとき、指定するパラメータとして適切なものはどれか。ここで、転送は開始アドレスから1語ずつ行われ、方向フラグに0を指定するとアドレスの昇順に、1を指定するとアドレスの降順に転送を行うものとする。
領域が重なるブロック転送は上書きしない側の端から転送する

| 転送元の開始アドレス | 転送先の開始アドレス | 方向フラグ | 転送語数 | |
|---|---|---|---|---|
| ア | 1001 | 1003 | 0 | 4 |
| イ | 1001 | 1003 | 1 | 4 |
| ウ | 1004 | 1006 | 0 | 4 |
| エ | 1004 | 1006 | 1 | 4 |
選択肢
- ア転送元の開始アドレス1001、転送先の開始アドレス1003、方向フラグ0、転送語数4
- イ転送元の開始アドレス1001、転送先の開始アドレス1003、方向フラグ1、転送語数4
- ウ転送元の開始アドレス1004、転送先の開始アドレス1006、方向フラグ0、転送語数4
- エ転送元の開始アドレス1004、転送先の開始アドレス1006、方向フラグ1、転送語数4
正解と解説
正解:エ 転送元の開始アドレス1004、転送先の開始アドレス1006、方向フラグ1、転送語数4
転送元1001〜1004と転送先1003〜1006は1003・1004の2語が重なっており、昇順に転送すると先に書き込んだ値で未転送の元データを壊してしまう。重なりがある場合は、上書きされる側から遠い末尾側から処理すればよいので、転送元1004・転送先1006を開始アドレスとし、方向フラグ1(降順)で4語転送する。
選択肢ごとの解説
- ア昇順転送では1001の内容を1003へ書いた時点で、まだ転送していない元データ1003を壊してしまう。
- イ開始アドレスが先頭なのに降順を指定しており、転送範囲が元の領域から外れてしまう。
- ウ末尾を開始アドレスにしながら昇順を指定しており、転送すべき範囲を逆方向にはみ出す。
- エ正しい。末尾の1004→1006から降順に4語転送すれば、重なり部分を壊さずにコピーできる。
同じ分野の他の問題
- プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、コンパイルの段階でまとめて一つの複合命令とし、高速化を…2018年度 春期 午前 問9
- 同じ命令セットをもつコンピュータAとBとがある。それぞれのCPUクロック周期,及びあるプログラムを実行したときのCPI(…2025年度 春期 午前 問8
- RISCプロセッサの5段パイプラインの命令実行制御の順序はどれか。ここで、このパイプラインのステージは次の五つとする。 …2024年度 秋期 午前 問8
- パイプラインの性能を向上させるための技法の一つで、分岐条件の結果が決定する前に、分岐先を予測して命令を実行するものはどれ…2023年度 秋期 午前 問9
- スマートフォンなどで高い処理性能と低消費電力の両立のために、異なる目的に適した複数の種類のコアを搭載したプロセッサはどれ…2023年度 秋期 午前 問8
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。