平成15年 春期 基本情報技術者 午後 問13
問13 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。
〔プログラムの説明〕 副プログラム BMOVE は,次に示すように,語1のビット列 A を語2の B の位置に移動する。 x,y,z はそれぞれビット数を表す。
(1) GR1 〜GR5 には,それぞれ次の内容が設定されて,主プログラムから呼ばれる。 GR1:語1 のアドレス GR2:語2 のアドレス GR3:x GR4:y GR5:z (2) x ≧ 0,y ≧ 0,z ≧ 1 とする。 (3) x + z ≦ 16,y + z ≦ 16 とする。 (4) 語1 と語2 は異なる語である。 (5) 副プログラムから戻るとき,汎用レジスタの内容は元に戻す。
〔プログラム〕 (行番号) 1 BMOVE START ; 2 PUSH 0,GR6 ; レジスタの内容を保存 3 PUSH 0,GR7 ; " 4 LD GR6,=#8000 ; 1 のビットを z 個並べる 5 ; " 6 LD GR7,GR6 ; 7 SRL GR7,0,GR4 ; 語2の部分 B のビットを 8 XOR GR7,=#FFFF ; ゼロにする 9 AND GR7,0,GR2 ; 10 ; 語1のビット列 A を取り出す 11 AND GR6,0,GR1 ; 12 SLL GR6,0,GR3 ; 取り出したビット列を 13 ; B の位置にシフト 14 OR GR6,GR7 ; 15 ST GR6,0,GR2 ; 16 POP GR7 ; レジスタの内容を元に戻す 17 POP GR6 ; 18 RET ; 19 END ; 設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。
解答群 ア SLA GR6,0,GR3 イ SLA GR6,0,GR4 ウ SLL GR6,0,GR3 エ SLL GR6,0,GR4 オ SRA GR6,-1,GR3 カ SRA GR6,-1,GR5 キ SRL GR6,-1,GR5 ク SRL GR6,0,GR3 ケ SRL GR6,0,GR4
設問2 主プログラムから渡された語1,語2,x,y 及び z の内容が次のとき, 行番号 12 の命令( SLL )実行直後の GR6 の内容として正しい答えを,解答群の中から選べ。
x = 9 y = 3 z = 5 解答群
設問3 副プログラム BMOVE を使用して, 語1のビット列 A と語2のビット列 B を入れ替えるプログラム BSWAP を作成した。 に入れる正しい答えを,解答群の中から選べ。 ここで,GR1〜GR5 には,BMOVE と同じように各パラメタが設定されて呼ばれる。
(行番号) 1 BSWAP START ; 2 RPUSH ;レジスタを退避 3 LD GR6,0,GR2 ; 4 ST GR6,WORD ;語2を WORD に保存 5 CALL BMOVE ; 6 LD GR2,GR1 ;語1のアドレスを語2のアドレスとする 7 ; WORD のアドレスを語1のアドレスとする 8 PUSH 0,GR4 ; 9 ; x と y を入れ替える 10 POP GR3 ; 11 CALL BMOVE ; 12 RPOP ;レジスタを復元 13 RET ; 14 WORD DS 1 ; 15 END ; 解答群 ア LAD GR1,WORD イ LAD GR4,WORD ウ LD GR1,WORD エ LD GR3,GR4 オ LD GR4,GR3 カ LD GR4,WORD キ POP GR4 ク PUSH 0,GR3
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||||||||||||||||