平成21年度春期 エンベデッドシステムスペシャリスト試験 午前II 問2
【問題2】
同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメタとして指定することでブロック転送ができるCPUがある。図のようにアドレス1001から1004の内容をアドレス1003から1006に転送するとき,パラメタとして適切なものはどれか。ここで,転送は開始アドレスから1番ずつ行われ,方向フラグに0を指定するとアドレスの昇順に,1を指定するとアドレスの降順に転送を行うものとする。
【解説】
転送元のアドレス範囲(1001~1004)を、転送先のアドレス範囲(1003~1006)にブロック転送する動作を考えます。
パラメタの設定条件
- 転送元の開始アドレス: 1001(転送元の最初のアドレス)。
- 転送先の開始アドレス: 1003(転送先の最初のアドレス)。
- 方向フラグ:
- アドレスが昇順で転送される場合は「0」。
- アドレスが降順で転送される場合は「1」。
本問題では転送元と転送先が重複しており、昇順で転送すると後続のデータが上書きされる可能性があるため、降順の転送が適切です。
- 転送語数: 4(転送元・転送先の範囲が4語分であるため)。
正しいパラメタ設定
- 転送元の開始アドレス: 1004(降順で転送するため最後のアドレスから開始)。
- 転送先の開始アドレス: 1006(降順で転送するため最後のアドレスから開始)。
- 方向フラグ: 1(降順)。
- 転送語数: 4(転送する語数)。
【答え】
エ: 転送元の開始アドレス: 1004, 転送先の開始アドレス: 1006, 方向フラグ: 1, 転送語数: 4
出典:平成21年度 春期 エンベデッドシステムスペシャリスト試験 午前II 問2