24152ab4cdbbc2e1046fc84e81adcdd790724975
[YACASL2.git] / as / exam_fe / 2011_06 / Q12 / Q12.txt
1 https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_pm_qs.pdf P.57 - P.60
2 次のアセンブラプログラムの説明及びプログラムを読んで,設問1~3に答えよ。
3
4 〔プログラム1の説明〕
5
6 連続する 16 語に格納した 16 × 16 ドットの白黒の図形を,時計回りに 90 度回転する 副プログラム ROTATE である。図形の回転の実行例を図1に示す。このとき,1ドットを1ビットで 表し,白は0,黒は1が格納されている。
7
8 図1.
9 five.png
10 five_r.png
11
12 (1) 図形を表す 16 語の先頭アドレスは GR1 に設定されて,主プログラムから渡される。
13
14 (2) 回転した結果の図形を格納する領域の先頭アドレスは GR2 に設定されて, 主プログラムから渡される。
15
16 (3) 元の図形と回転した図形は,異なる領域に格納される。
17
18 (4) 副プログラムから戻るとき,汎用レジスタ GR1 ~ GR7 の内容は元に戻す。
19
20 ROTATE  START
21         RPUSH
22         LD     GR3,=16
23 LOOP1   LD     GR4,=16
24         LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
25         LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
26 LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
27         SRL    GR7,1
28         SLL    GR6,1
29         JOV    ON
30         JUMP   CONT
31 ON      OR     GR7,=#8000
32 CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
33          
34         SUBA   GR4,=1
35         JNZ    LOOP2
36          
37         SUBA   GR3,=1
38         JNZ    LOOP1
39         RPOP
40         RET
41         END
42
43 設問1.
44 プログラム1中の に入れる正しい答えを,解答群の中から選べ。
45
46 解答群
47
48 ア LAD GR1,-1,GR1    イ LAD GR1,1,GR1    ウ LAD GR2,-1,GR2
49 エ LAD GR2,1,GR2     オ LAD GR5,-1,GR5   カ LAD GR5,1,GR5
50
51
52 設問2.
53 行番号9を次のとおりに変更し,図1の回転前を元の図形として実行した。実行結果の図形として正しい答えを,解答群の中から選べ。
54
55     SRL GR6,1
56
57 設問3.
58 プログラム1中の行番号3,4をプログラム2に置き換えて,16×16ドットの図形のうち左上のn×nドットの部分だけを時計回りに90度回転するプログラムとした。左上の8×8ドットの部分だけを回転した実行例を図2に示す。
59     値n(1≦n≦16)は GR3 に設定されて主プログラムから渡される。
60     置換え後のプログラムは,まず,回転の対象とならないドット(元の図形の上n語の右(16-n)ビットと下(16-n)語の全ビット)を結果の領域の適切な場所に複写する。その後,左上のn×nドットの部分を回転して結果の領域に格納する。
61 プログラム2の に入れる正しい答えを,解答群の中から選べ。
62
63 ROTATE  START
64         RPUSH
65         LD     GR3,=16
66 LOOP1   LD     GR4,=16
67         LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
68         LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
69 LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
70         SRL    GR7,1
71         SLL    GR6,1
72         JOV    ON
73         JUMP   CONT
74 ON      OR     GR7,=#8000
75 CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
76          
77         SUBA   GR4,=1
78         JNZ    LOOP2
79          
80         SUBA   GR3,=1
81         JNZ    LOOP1
82         RPOP
83         RET
84         END
85
86 c に関する解答群
87
88 ア SLL GR0,-1,GR3    イ SLL GR0,0,GR3    ウ SRL GR0,-1,GR3    エ SRL GR0,0,GR3
89
90 d に関する解答群
91
92 ア JMI LOOP1    イ JNZ LOOP1    ウ JPL LOOP1    エ JZE LOOP1