fc2ブログ

記事一覧

平成19年春期基本情報技術者試験午後問9、アセンブラ言語

本ページは平成19年春期基本情報技術者試験午後問9、アセンブラ言語の解説です。
問題文、解答、解説の順で掲載しております。

**************************************************
無料から学べる講座
http://ai-light.com/itkeiei/

ニコニコチャンネル
http://ch.nicovideo.jp/ai-light

YouTubeチャンネル
https://www.youtube.com/user/ailightcom

Access・Excel倶楽部
http://ai-light.com/accessclub/

株式会社アイライト公式HP
http://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)
**************************************************

次のアセンブラプログラムの説明及びプログラムを読んで,設問1~3に答えよ。

〔プログラムの説明〕

 副プログラムSYMTSTは,16ビットからなるビット列が左右対称かどうかを検査するプログラムである。図に左右対称なビット列の例を示す。

1 0 1 1 0 1 0 11 0 1 0 1 1 0 1

図 左右対称なビット列の例

(1) ビット列はGR1に設定されて,主プログラムから渡される。

(2) ビット列が左右対称であればGR0に1を,そうでなければ0を設定して主プログラムに返す。

(3) 副プログラムから戻るとき,汎用レジスタGR1~GR7の内容は元に戻す。

〔プログラム〕

(行番号)
1 SYMTST START
2 RPUSH
3 LD GR3,=8
4 LD GR2,GR1
5 LOOP SLL GR1,1
6 JOV OFLOW
7 SRL GR2,1 ; 右端のビットは1か?
8 JOV NG ; 1であれば左右対称でない。
9 JUMP OK
10 OFLOW SRL GR2,1
11 { a }
12 NG LD GR0,=0 ; 左右対称でない。
13 JUMP FIN
14 OK SUBA GR3,=1
15 { b }
16 LD GR0,=1 ; 左右対称である。
17 FIN RPOP
18 RET
19 END


設問1 プログラム中の{ }に入れる正しい答えを, 解答群の中から選べ。

解答群

ア JMI LOOP     イ JOV NG      ウ JOV OFLOW
エ JOV OK      オ JPL LOOP     カ JZE LOOP

設問2 ビット列が図のとおりであった場合,行番号17のマクロ命令RPOPの実行直前に おけるGR2の内容として正しい答えを,解答群の中から選べ。

解答群
assembla_02_01.jpg

設問3 ビット列が次のとおりであった場合(▲で示されるビットが左右対称ではない場合), 行番号10のSRL命令は何回実行されるか。正しい答えを,解答群の中から選べ。

assembla_02_02.jpg
解答群

ア 1       イ 2       ウ 3       エ 4

**************************************************
無料から学べる講座
http://ai-light.com/itkeiei/

ニコニコチャンネル
http://ch.nicovideo.jp/ai-light

YouTubeチャンネル
https://www.youtube.com/user/ailightcom

Access・Excel倶楽部
http://ai-light.com/accessclub/

株式会社アイライト公式HP
http://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)
**************************************************

**************************************************
解答
設問1 答 aエ 答 bオ  設問2 答 イ  設問3 答 ウ

**************************************************

解説
1行目のSTARTは、プログラムの先頭を定義している。
2行目のRPUSHは、GRの内容をGR1,GR2,・・・・GR7の順でスタックに格納する。
3行目は、GR3に8をセットする。
4行目は、GR1の内容をGR2にセットする。左右対称かを検査するビット列をGR2にもセットすることになる。

5行目は、GR1を1ビット左に論理シフトする。
図の左右対称なビット列の例は1ビット左に論理シフト結果として、以下のようになる。
0101101011010110 OF・・・1
OFにはレジスタから最後に送り出されたビットの値が設定される。

6行目は、オーバーフロー分岐でOFが1の時に分岐を行い、10行目に処理が移動する。図の例では分岐が起こる。

同様にして、10行目でGR1を1ビット右に論理シフトする。
図の左右対称なビット列の例は以下のようになる。
0110101101011010 OF・・・1
OFにはレジスタから最後に送り出されたビットの値が設定される。

{ a }
10行目は5・6行目でOFに1がセットされている場合に処理が行われる。よって、10行目の結果もOFに1がセットされていると左右対称となり、14行目に処理が移動する。
よって、解答はエとなる。

11行目の結果、処理が14行目に移動する。
14行目で算術減算を行い、GR3の値をマイナス1引く。GR3はカウンタの役割をしており、3行目でGR3に初期値として8をセットしておき順次マイナスしていく。


{ b }
1回目の処理でビットが左右対称かを確認して、左右対称ならGR3を7にして、ループする。処理は8回確認する必要がありその時のGR3は0となる。GR3が0となれば処理を終了すればよい。よって、解答はオとなる。

6行目でOFLOWに分岐しない場合、つまりは5行目で論理左シフトした際にOFに0がセットされていた場合には、7行目に処理が移り、GR2を論理右シフトする。

8行目で、OFに1がセットされていた場合には、左右非対称であるから処理が12行目に移り、その後に処理が終了する。また、OFに0がセットされていた場合には、左右対称であるから処理が14行目に移り、処理が続くことになる。

17行目のRPOPは、スタックから順にデータを取り出しGR7, GR6,・・・・GR1の順にデータを格納する。
18行目のRETは、呼び出し元へ戻る。
19行目のENDは、プログラムの終わりであることを定義する。

設問2
上記の説明より、GR1は論理左シフトを順次行っていき、GR2は論理右シフトを順次行っていく。また、シフトは左右対称の場合には8回の比較が行われる。よって、解答はイとなる。

設問3
10行目の論理右シフト命令は、5行目でGR1を左シフトした際に、OF(レジスタから最後に送り出されたビットの値)が1の時に、6行目の分岐条件で10行目に処理が移動する。

さらに11行目でビット列が非対称であった場合には、12行目のNG内に処理が移り、処理が終了する。

よって、解答はウとなる。

参考:平成19年春期基本情報技術者試験午後問9

**************************************************
無料から学べる講座
http://ai-light.com/itkeiei/

ニコニコチャンネル
http://ch.nicovideo.jp/ai-light

YouTubeチャンネル
https://www.youtube.com/user/ailightcom

Access・Excel倶楽部
http://ai-light.com/accessclub/

株式会社アイライト公式HP
http://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)
**************************************************
関連記事

コメント

コメントの投稿

非公開コメント

adwords

外部リンク

当社のシステム開発の詳細

当社はaccess-excelでの小規模システム開発を中心に年間に50社以上の開発実績がございます。詳細は06-6599-8890ないしinfo@ai-light.comまで今すぐお問合せください

メールフォーム

こちらからも簡単にメールを送付できます。当社のサービスに関してご質問がございましたら、よろしければ、ご利用ください。直接お電話の場合は06-6599-8890までご連絡ください。

名前:
メール:
件名:
本文:

access、動画講座(初級~上級)ver.4

本動画講座は、Accessの起動からプログラミング(VBA)まで、つまりは初級から上級までの内容を網羅した総合講座です。

カテゴリーメニュー 改

検索フォーム

広告

最新記事

Lc.ツリーカテゴリー

全記事表示リンク

プロフィール

itkeieinews

Author:itkeieinews
ITと経営ニュースへようこそ!
アイライトIT経営研究会
株式会社アイライト
電話でのお問合せは06-6599-8890
Email:info@ai-light.com

お気に入り

本サイトをそのまま消してしまうと、もう探せなくなってしまうかもしれません。 当社はいずれお役に立てることがあるかと思いますので、よろしければお気に入りにご登録ください。

ブロとも申請フォーム