問題
同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメタとして指定することによってブロック転送ができる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(降順),語数を4とすればデータが破壊されずに転送できる。(出典: 平成31年度 春期 応用情報技術者試験 午前 問9)
一問一答
全400問を繰り返し学習