スゴ技

平成27年度 秋 基本情報技術者試験 【問12】

Blog:IT・情報処理BLOG |

ブログのおねーさまこと山口あかねです。

おとといの日曜日に秋の情報処理技術者試験が実施されました。在校生のIT分野のみなさん、いかがでしたか?気になっている人もいると思うので問12のCASLⅡを解説しておきます。授業でやったことばかりなので、簡単に感じた問題だったのではないでしょうか?

問題の概要説明ですが、A番地とB番地に格納されている2つの16ビットのデータがあると仮定します。B番地に格納されているデータをnで指定されているビット数で区切ります。前半nビットをb1、後半16-nビットをb2とします。b1とb2の間にA番地に格納されているデータを挿入して、全体で32ビットのデータを作ります。これはC番地から始まる2語(ワード)の領域に格納されます。

図解すると下記のようになります。設問2の解答のために、設問2のデータとn=10で行っています。

CASL01

さて、C番地からの2語に格納されているようなビットパターンを作るにはどうすればよいか?ですが、まずはA番地とB番地の格納データからそれぞれ必要なビットを取り出して合成すればよいのです。ビットの合成はOR命令で行えます。

casl02

casl03

 

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 :

casl04例を使い説明をすると、プログラム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年度)秋期の解説

Date:

神戸電子の
IT・情報処理学科
についてもっと知りたい!

Webアプリケーション等のシステム管理、設計、開発が行える総合的なITエンジニアを育成する学科です。

学科紹介を見る (神戸電子サイト)

学科紹介イメージ
Info神戸電子からのお知らせ

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

オープンキャンパスなどの
誰でも参加OKの楽しいイベント
やブログの最新記事などお届けします!

ページの上へ移動