同一メモリ空間で,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメータとして指定することによって,データをブロック転送できる機能をもつCPUがある。
図のようにアドレス1001から1004のデータをアドレス1003から1006に転送するとき,指定するパラメータとして適切なものはどれか。
ここで,転送は開始アドレスから1語ずつ行われ,方向フラグに0を指定するとアドレスの昇順に,1を指定するとアドレスの降順に転送を行うものとする。
正答4
解説
正解はエ。
アドレス1001〜1004のデータをアドレス1003〜1006へ転送する際,転送先の範囲が転送元の範囲と重なっているため,昇順(アドレスの小さい方から)に転送すると,未転送のデータを上書きしてしまう。
そこで転送元1004・転送先1006を起点に,方向フラグ1(降順)で4語を転送すれば,上書きされる前に正しくデータを退避できる。