ウカマル応用情報技術者ログイン

平成31年度 春期 応用情報技術者 問9

テクノロジ系

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

図

図の内容(文字)
〔実行前〕アドレス1000〜1007のメモリ。アドレス1001,1002,1003,1004の内容が網掛け(転送元)。 〔実行後〕アドレス1000〜1007のメモリ。アドレス1003,1004,1005,1006の内容が網掛け(転送先)。 矢印:実行前の1001から実行後の1003へ,実行前の1004から実行後の1006へ。
選択肢
正解と解説

正解 エ

転送先が転送元より後ろのアドレスと重なるときは、末尾(1004→1006)から降順に転送します。昇順だと、まだ転送していない内容を上書きしてしまいます。

転送元1001〜1004と転送先1003〜1006は、1003と1004で重なっています。昇順に転送すると、1001→1003の時点で、まだ転送していない1003の元の内容が消えます。そこで末尾から降順に転送します。順序は1004→1006、1003→1005、1002→1004、1001→1003です。重なる部分は上書きされる前に読み出されるので、正しく転送できます。パラメタは、転送元の開始アドレス1004、転送先の開始アドレス1006、方向フラグ1、転送語数4です。

ア:昇順では、1001→1003の転送で1003の元の内容が先に上書きされます。その結果、1003〜1006は元の1001、1002の内容が2回繰り返す並びになります。

イ:1001から降順に転送すると、1000、999…と転送元の範囲外へ進みます。そのため1001〜1004の内容を転送できません。

ウ:1004から昇順に転送すると、1005、1006…と転送元の範囲外へ進みます。そのため1001〜1004の内容を転送できません。

出典:平成31年度 春期 応用情報技術者試験 問9

全年度から出題。10問で実力を判定します。登録不要。

出典:平成31年度 春期 応用情報技術者試験 問9(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方