アセンブラ 過去問の解き方(平成31年度春期)


設問1のa 

“穴埋め箇所”付近のコメントに着目

コメント(行番号45)には、以下のように記載されています。
「ビット位置(GR3)」を「相対アドレス(GR2)」に変換

3
4
5
6
7
8
LD     GR3,1,GR1    ; GR3:ビット位置
; ビット位置を,相対アドレス(GR2)
; ビットインデックス(GR3)とに変換
LD     GR2,GR3
[  a  ]
AND    GR3,=#O00F

“相対アドレス”とは

相対アドレスの説明は、〔プログラムの説明〕に記載されています。
相対アドレスは、「ビット位置」を16で割ることで得られることが分ります。


該当する選択肢は?

「ビット位置」を16で割る処理に該当する選択肢は、「オ SRL GR2,4」になります。

SLL GR2,O,GR3
SLL GR2,4
SLL GR2,4,GR3
SRL GR2,O,GR3
SRL GR2,4
SRL GR2,4,GR3

講評

本問は、穴埋め箇所周辺のプログラム解析だけで正解を得ることができます。

設問1のb


アセンブラのノウハウ

LD  GR3,GR3
GR3GR3に転送してどんな意味があるのか?
GR3GR3に転送することで、GR3に設定されている値に応じてフラグレジスタが変化します。

SUBL  GR3,GR3
GR30を設定する処理になります。

穴埋め箇所周辺のトレースで正解を得られるか?

穴埋め箇所周辺のトレースで正解を得られるかを確認してみます。
GR3の用法を把握する必要があり、正解が得られなさそうです。

16
17
18
19
LD     GR3,GR3      ; GR3の設定値は?
JZE    FULL         ; GR30ならFULLに分岐
[  b  ]
SUBL   GR3,GR3      ; GR30を設定

選択肢から正解を得られるか?

選択肢の内容から正解を得られる(または絞り込める)かを確認してみます。
GR5を更新していますが、GR5の用法を把握する必要があり、正解が得られなさそうです。

ADDL GR5,GR2
ADDL GR5,GR3
ADDL GR5,GR4
SUBL GR5,GR2
SUBL GR5,GR3
SUBL GR5,GR4

一旦、保留

プログラム全体のトレースを要するので、本問題の解析を保留します。

設問1のc


選択肢から正解を得られるか?

分岐先・分岐条件を問う問題では、選択肢に記載された分岐先と分岐条件を整理します。

JNZ FIN
JNZ LOOP
JPL FIN
JPL LOOP
JZE FIN
JZE LOOP

分岐先は?

分岐先が問われた場合、プログラムの中で分岐元のないラベルがないかを捜します。
本問の場合、「FIN」へ分岐する分岐命令がなく、FINに分岐する選択肢が正解である可能性が高くなります。

分岐条件は?

プログラムを確認すると、GR4の設定値に従って分岐することが分ります。

27
28
BREAK  LD GR4,GR4  ;操作の対象になる未処理のビットあり?
       [  c  ]

GR4って何?

GR4を更新する箇所を抽出してみます。
GR4にはビット長が格納されていることが分ります。
ビット長は、初期値が正(非ゼロ)で、減算されていく変数ですので、JNZJPLでは同じ結果が得られてしまい選択肢として不適切です。JZEが正解となります。


9
20
27
28
      LD   GR4,2,GR1 ;GR4:ビット長(初期値)
FULL  SUBL GR4,GR5   ;操作するビット数だけビット長を減らす
BREAK LD GR4,GR4  ;操作の対象になる未処理のビットあり?
      [  c  ]

分岐先は?

ビット長が0になった時の分岐先としては、FINが妥当です。
以上より、正解は「オ JZE FIN」となります。

講評

本問は、分岐判断に使用される汎用レジスタの用途を解析だけで正解を得ることができます。

0 件のコメント:

コメントを投稿

基本情報技術者試験 アセンブラ(CASL) 原稿 20210529

  基本情報技術者試験 アセンブラ(CASL) 簡単に5割 平成21年春期,平成21年秋期 平成21春期 平成21秋期 平成22春期 平成22秋期 平成21春期 概要 解き方 設問1-a 設問1-b 設問1-c 設問2-d...