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

選択肢
- 1転送元の開始アドレス 1001、転送先の開始アドレス 1003、方向フラグ 0、転送語数 4
- 2転送元の開始アドレス 1001、転送先の開始アドレス 1003、方向フラグ 1、転送語数 4
- 3転送元の開始アドレス 1004、転送先の開始アドレス 1006、方向フラグ 0、転送語数 4
- 4転送元の開始アドレス 1004、転送先の開始アドレス 1006、方向フラグ 1、転送語数 4
正解
4. 転送元の開始アドレス 1004、転送先の開始アドレス 1006、方向フラグ 1、転送語数 4
詳しい解説を見る解説を閉じる
解説
転送元 1001〜1004 を転送先 1003〜1006 へ移す場合、転送元と転送先の領域が一部重なる。昇順(小さいアドレスから)に転送すると、先に書き込んだ転送先のデータが、後で読む転送元データを上書きして壊してしまう。これを避けるには末尾アドレス(転送元 1004、転送先 1006)から降順に転送する必要があり、方向フラグは 1(降順)を指定する。よってエが正解。(出典: 令和6年度 春期 応用情報技術者試験 午前 問8)
一問一答
全400問を繰り返し学習