基本情報技術者試験 |
2002年度 = 平成14年度・秋期 |
午前 |
問19 |
転送元の開始アドレス、転送先の開始アドレス、方向フラグ及び転送語数を指定することでブロック転送が行えるCPUにおいて、図のようにアドレス1001から1004の内容をアドレス1003から1006に転送する場合、パラメタとして適切なものはどれか。ここで、転送は開始アドレスから1語ずつ行われ、方向フラグに0を指定するとアドレスの昇順に、1を指定するとアドレスの降順に転送を行うものとする。
| 転送元の開始アドレス
| 転送先の開始アドレス
| 方向フラグ
| 転送語数
|
ア
| 1001
| 1003
| 0
| 4
|
イ
| 1001
| 1003
| 1
| 4
|
ウ
| 1004
| 1006
| 0
| 4
|
エ
| 1004
| 1006
| 1
| 4
|
エ
1001番地~1004番地を1003番地~1006番地に転送するためには、以下に示す手順で行う必要があります。
[1] 1004番地の内容を1006番地にコピー
[2] 1003番地の内容を1005番地にコピー
[3] 1002番地の内容を1004番地にコピー
[4] 1001番地の内容を1003番地にコピー
すなわち、高位のアドレスから始めて、低位のアドレスへと降順に転送を行う必要があります。したがって、正解はエです。
以下に示すように、昇順にコピーしたらどうなるかを考察しましょう。
[A] 1001番地の内容を1003番地にコピー
[B] 1002番地の内容を1004番地にコピー
[C] 1003番地の内容を1005番地にコピー
[D] 1004番地の内容を1006番地にコピー
[A]が終了した段階で、本来の1003番地の内容が書き換えられてしまうことになります。これでは正常な転送は行えません。