SkillStack
テクノロジ系8 / 80問

応用情報技術者試験 令和6年度 春期 午前 問8

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

応用情報技術者試験 令和6年度 春期 午前 問8の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】エ

転送元の1001~1004と転送先の1003~1006は、1003、1004の部分で重なっています。このような転送をアドレスの昇順で行うと、まだ転送元として読み出していない1003、1004のデータが先に上書きされます。そのため、高いアドレスから低いアドレスへ、降順に転送しなければなりません。最初に指定するのは転送元の末尾1004と転送先の末尾1006であり、方向フラグを1、転送語数を4とします。具体的な転送順は、1004→1006、1003→1005、1002→1004、1001→1003です。この順序なら、各データを読み出してからそのアドレスが上書きされるので、元の4語を壊さずに移動できます。

アは誤りです。1001→1003から昇順に転送すると、元の1003が最初に上書きされ、後続の転送で誤ったデータを読み出します。 イは誤りです。降順の指定に対して開始アドレスが先頭の1001と1003なので、次は1000→1002となり、目的の範囲から外れます。 ウは誤りです。開始アドレスは末尾で正しいものの、昇順なので、次は1005→1007となり、転送対象外へ進みます。

【ポイント】 同一メモリ内で転送元と転送先が重なる場合は、上書き前のデータを保護できる方向を選びます。 転送先が転送元より高い側に重なる場合は末尾から降順、低い側に重なる場合は先頭から昇順に転送します。

出典:令和6年度 春期 応用情報技術者試験 午前 問8
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める