ブログのおねーさまこと山口あかねです。
おとといの日曜日に秋の情報処理技術者試験が実施されました。在校生のIT分野のみなさん、いかがでしたか?気になっている人もいると思うので問12のCASLⅡを解説しておきます。授業でやったことばかりなので、簡単に感じた問題だったのではないでしょうか?
問題の概要説明ですが、A番地とB番地に格納されている2つの16ビットのデータがあると仮定します。B番地に格納されているデータをnで指定されているビット数で区切ります。前半nビットをb1、後半16-nビットをb2とします。b1とb2の間にA番地に格納されているデータを挿入して、全体で32ビットのデータを作ります。これはC番地から始まる2語(ワード)の領域に格納されます。
図解すると下記のようになります。設問2の解答のために、設問2のデータとn=10で行っています。
さて、C番地からの2語に格納されているようなビットパターンを作るにはどうすればよいか?ですが、まずはA番地とB番地の格納データからそれぞれ必要なビットを取り出して合成すればよいのです。ビットの合成はOR命令で行えます。
ORするためには必要なビット以外は全て0にする必要があります。ピンクで塗りつぶしてある部分が0になっているところです。
プログラムの5~7行目までで、GR0、GR5にはA番地の格納データが、GR1,GR4にはB番地の格納データが入っていることがわかるので14、15行目のOR命令でそれぞれから上記のデータを作成してORをしているのがわかります。
C+0番地用のデータを作るためには、A番地格納データを右へ10ビット、B番地格納データを左へ6ビットシフトします。
C+1番地用のデータを作るためには、A番地格納データを左へ6ビット、B番地格納データを右へ10ビットシフトします。
GR2にはnの値10が入っているので、もうひとつのシフトビット数である6を作成する必要があります。それがGR6に設定されるので、空欄aは16ビットからnを引いて、6ビットを作成します。空欄aの解答はウです。
8行目の命令を実行する前のレジスタの内容は下記のとおり。
GR0 : A番地の記憶データ
GR1 : B番地の記憶データ
GR2 : 10
GR3 : C番地(アドレス)
GR4 : B番地の記憶データ
GR5 : A番地の記憶データ
GR6 : 6
GR7 :
8行目でGR1(B番地の記憶データ)が右へ6ビットシフトされる。
9行目で上記のGR1が左へ6ビットシフトされる。
②のデータがGR1に完成。
10行目でGR4(B番地の記憶データ)が左へ10ビットシフトされる。
11行目でGR4が右へ10ビットシフトされる。
④のデータがGR4に完成。
13行目でGR5が左へ6ビットシフトされる。
③のデータがGR5に完成。
この後の14行目、15行目でビットの合成であるOR命令が実行されているが
①のデータが作成されていない。なので、空欄Bでは①のデータを作成する必要がある。①のデータはA番地の
データを10ビット右シフトすれば作成できる。A番地のデータが入っているのはGR0、なのでGR0をGR2で指定するビット数だけ右シフト
する命令が適切なので空欄bはウ。
設問2
上記の説明を参照すれば、簡単にわかる。
15行目ではOR命令を実行しているのでOR命令前のGR4は④、GR5は③のデータが入っているので空欄cはイ、空欄dはキ。
設問3
プログラム2実行前のレジスタの状態を下記とする。
GR0 : X番地の記憶データ
GR1 : Y番地の記憶データ
GR2 : 42
GR3 : Z番地(アドレス)
GR4 :
GR5 :
GR6 :
GR7 :
例を使い説明をすると、プログラム2は、図にあるように、Y+0番地のデータAとY+1番地のデータBをそのままZ+0番地、Z+1番地にコピーをする。その後、Y+2番地の前から10ビットの後ろにGR0にあるデータを挿入する。挿入についてはプログラム1のBITINSを呼び出して使用すればよい。その後、残りのY+3番地のデータCをZ+4番地にコピーをする。挿入場所より前の部分でのコピーでは、1語コピーをするたびにmの値(GR2に格納されている)を16ずつ引いて行き、mの値が0~16になるまで移動を繰り返す。なので、空欄eはイが正解となる。
挿入場所より後の部分なので、元のデータがなくなるまで移動をするが、後の部分がない場合はコピーをする必要がないので、元のデータの語数N(GR4に格納されている)から1を引いた結果が0であれば、即終了すればよいため、
20が正解となる。
2015年(平成27年度)秋期の解説
- 平成27年度 秋 基本情報技術者試験 【問1】
- 平成27年度 秋 基本情報技術者試験 【問8】
- 平成27年度 秋 基本情報技術者試験 【問7】
- 平成27年度 秋 基本情報技術者試験 【問6】(その2)
- 平成27年度 秋 基本情報技術者試験 【問6】(その1)
- 平成27年度 秋 基本情報技術者試験 【問5】
- 平成27年度 秋 基本情報技術者試験 【問3】
- 平成27年度 秋 基本情報技術者試験 【問4】(その2)
- 平成27年度 秋 基本情報技術者試験 【問4】(その1)
- 平成27年度 秋 基本情報技術者試験 【問12】
- 平成27年度 秋 基本情報技術者試験 【問2】
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus