【問題8】
同一メモリ空間で,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメータとして指定することで,データをブロック転送できる機能をもつCPUがある。図のようにアドレス 1001 から 1004 の内容をアドレス 1003 から 1006 に転送する場合,パラメータとして適切なものはどれか。ここで,転送は開始アドレスから1語ずつ行われ,方向フラグに0を指定するとアドレスの昇順に,1を指定するとアドレスの降順に転送を行うものとする。
【解説】
アドレス 1001 から 1004 の内容を 1003 から 1006 に転送する場合、転送元と転送先のアドレス領域が部分的に重なります(1003, 1004)。
このとき、昇順(方向フラグ 0)で転送すると、転送中に元データが上書きされてしまい、正しいデータが保持されません。
したがって、降順(方向フラグ 1)で転送する必要があります。つまり、転送元の最後のアドレスから順にコピーしていくことで、上書きを回避します。
この場合、転送元の開始アドレスは 1004、転送先の開始アドレスは 1006、方向フラグは 1、転送語数は 4 となります。
【答え】
エ: 転送元の開始アドレス 1004,転送先の開始アドレス 1006,方向フラグ 1,転送語数 4
出典:令和6年度 春期 応用情報技術者試験 午前 問8