基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成23年 春期 基本情報技術者 午後 問12
問12   CASL

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

〔プログラム1の説明〕

 連続する 16 語に格納した 16 × 16 ドットの白黒の図形を,時計回りに 90 度回転する 副プログラム ROTATE である。図形の回転の実行例を図1に示す。このとき,1ドットを1ビットで 表し,白は0,黒は1が格納されている。

(1) 図形を表す 16 語の先頭アドレスは GR1 に設定されて,主プログラムから渡される。

(2) 回転した結果の図形を格納する領域の先頭アドレスは GR2 に設定されて, 主プログラムから渡される。

(3) 元の図形と回転した図形は,異なる領域に格納される。

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


      図1 図形の回転の実行例

〔プログラム1〕
(行番号 ) 
  1  ROTATE  START
  2          RPUSH
  3          LD     GR3,=16
  4  LOOP1   LD     GR4,=16
  5          LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
  6          LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
  7  LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
  8          SRL    GR7,1
  9          SLL    GR6,1
 10          JOV    ON
 11          JUMP   CONT
 12  ON      OR     GR7,=#8000
 13  CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
 14          
 15          SUBA   GR4,=1
 16          JNZ    LOOP2
 17          
 18          SUBA   GR3,=1
 19          JNZ    LOOP1
 20          RPOP
 21          RET
 22          END

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

解答群

ア LAD GR1,-1,GR1     イ LAD GR1,1,GR1     ウ LAD GR2,-1,GR2

エ LAD GR2,1,GR2     オ LAD GR5,-1,GR5     カ LAD GR5,1,GR5

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

基本情報技術者試験


設問2 行番号9を次のとおりに変更し,図1の回転前を元の図形として実行した。実行結果の 図形として正しい答えを,解答群の中から選べ。

    SRL  GR6,1
解答群

解答 a ←クリックすると正解が表示されます

基本情報技術者試験


設問3 プログラム1中の行番号3,4をプログラム2に置き換えて, 16 × 16 ドットの図形のうち 左上の n × n ドットの部分だけを時計回りに 90 度回転するプログラムとした。左上の 8 × 8 ドットの部分だけを回転した実行例を図2に示す。

 値 n ( 1 ≦ n ≦ 16 )は GR3 に設定されて主プログラムから渡される。  置換え後のプログラムは,まず,回転の対象とならないドット(元の図形の上 n 語の右 ( 16 − n ) ビットと下( 16 − n )語の全ビット)を結果の領域の適切な場所に複写する。その後,左上の n × n ドットの部分を回転して結果の領域に格納する。

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


    図2 左上の 3 × 8 ドットの部分だけを回転した実行例

〔プログラム2〕
          ST     GR3,N          ; n を保存
          LD     GR4,GR3        ; GR4 ← n
          LD     GR5,GR1        ; GR5 ← 元の図形のアドレス
          LD     GR6,GR2        ; GR6 ← 結果の領域のアドレス
          LD     GR7,=16
          SUBA   GR7,GR3        ; GR7 ← 16-n
SHIFT     LD     GR0,0,GR5      ; GR0 ← 元の図形の1語の内容
          
          ST     GR0,0,GR6      ; 結果の領域 ← GR0
          LAD    GR5,1,GR5      ; 元の図形の1語のアドレス更新
          LAD    GR6,1,GR6      ; 結果の領域の1語のアドレス更新
          SUBA   GR4,=1         ; n 語処理済み?
          JNZ    SHIFT
COPY      SUBA   GR7,=1         ; 残りの語の内容を結果の領域に複写
          
          LD     GR0,0,GR5
          ST     GR0,0,GR6
          LAD    GR5,1,GR5
          LAD    GR6,1,GR6
          JUMP   COPY
N         DS     1
LOOP1     LD     GR4,N

c に関する解答群

ア SLL GR0,-1,GR3     イ SLL GR0,0GR3     ウ SRL GR0,-1,GR3

エ SRL GR0,0,GR3

d に関する解答群

ア JMI LOOP1     イ JNZ LOOP1     ウ JPL LOOP1

エ JZE LOOP1

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]