令和元年 秋期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラム1の説明〕 符号が同一である二つの 16 ビットのパック 10 進数を加算する副プログラム ADDP1 である。 本問では,パック 10 進数は,3 桁の 10 進数の各桁をそれぞれ 4 ビットで表現し, 最下位の 4 ビットに符号として,正又は 0 の場合は 1100 を, 負の場合は 1101 を付与する数値表現とする。10 進数 246 を, パック 10 進数で表現した例を,図1に示す。
図1 1Ø 進数 246 のパック 1Ø 進数表現 符号が同一である二つのパック 10 進数の加算例を,図2に示す。
図2 符号が同一である二つのパック 1Ø 進数の加算例 (1) 副プログラム ADDP1 は,加算の対象となる符号が同一である二つの 16 ビットの パック 10 進数が,GR1,GR2 に設定されて,呼び出される。 (2) 副プログラム ADDP1 は,加算結果を GRØ に設定して呼出し元に戻る。このとき, 汎用レジスタ GR1 〜 GR7 の内容は元に戻す。ここで,加算において, 10 進数の百の位からの桁上がりは発生しないものとする。 〔プログラム1〕 ADDP1 START RPUSH ST GR1,A ST GR2,B LAD GR3,4 ;ビット数カウンタの初期化 a ST GR1,RESULT ;符号部を退避 LD GR1,A SRL GR1,Ø,GR3 LD GR2,B SRL GR2,Ø,GR3 LOOP AND GR1,=#ØØØF AND GR2,=#ØØØF LAD GRØ,Ø ADDL GR1,GR2 CPL GR1,=1Ø ;1Ø 以上の場合は桁上げ b SUBL GR1,=1Ø LAD GRØ,1 MERGE c OR GR1,RESULT ;中間結果との併合 LAD GR3,4,GR3 CPL GR3,=16 JZE FIN ;終了判定 ST GR1,RESULT ;中間結果を退避 LD GR1,A SRL GR1,Ø,GR3 LD GR2,B SRL GR2,Ø,GR3 ADDL GR1,GRØ JUMP LOOP FIN LD GRØ,GR1 RPOP RET A DS 1 B DS 1 RESULT DS 1 END
a に関する解答群 エ OR GR1,=#ØØØF オ OR GR1,=#FØØØ カ OR GR1,=#FFFF b に関する解答群 エ JOV MERGE オ JZE MERGE
c に関する解答群 エ SRA GR1,Ø,GR3 オ SRL GR1,Ø,GR3 カ SRL GR1,=4
〔プログラム2の説明〕 (1) 副プログラム ADDP2 は,加算の対象となる符号が異なる二つの 16 ビットのパック 10 進数が, GR1,GR2 に設定されて,呼び出される。 (2) 副プログラム ADDP2 は,加算結果を GRØ に設定して呼出し元に戻る。このとき, 汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム2〕 ADDP2 START RPUSH CPL GR1,GR2 d LD GR4,GR1 LD GR1,GR2 LD GR2,GR4 INI ST GR1,A ST GR2,B LAD GR3,4 ;ビット数カウンタの初期化 a ST GR1,RESULT ;符号部を退避 LD GR1,A SRL GR1,Ø,GR3 LD GR2,B SRL GR2,Ø,GR3 LOOP AND GR1,=#ØØØF AND GR2,=#ØØØF LAD GRØ,Ø SUBL GR1,GR2 JPL MERGE e ADDL GR1,=1Ø LAD GRØ,1 MERGE c OR GR1,RESULT LAD GR3,4,GR3 CPL GR3,=16 JZE FIN ;終了判定 ST GR1,RESULT ;中間結果を退避 LD GR1,A SRL GR1,Ø,GR3 LD GR2,B SRL GR2,Ø,GR3 f JUMP LOOP FIN LD GRØ,GR1 CPL GRØ,=#ØØØD JNZ FIN2 LAD GRØ,#ØØØC FIN2 RPOP RET A DS 1 B DS 1 RESULT DS 1 END d に関する解答群 エ JPL INI オ JZE INI e に関する解答群 エ JZE MERGE オ SLL GR1,Ø,GR3 カ SRL GR1,Ø,GR3 f に関する解答群 コ ADDL GR3,GRØ オ SUBL GR1,=1 カ SUBL GR1,GRØ
設問3 符号にかかわらず二つの 16 ビットのパック 10 進数を加算できるように, 符号の組合せによって副プログラム ADDP1 と ADDP2 を使い分ける副プログラム ADDP を作成した。 プログラム3中の に入れる正しい答えを,解答群の中から選べ。 〔プログラム3の説明〕 (1) 副プログラム ADDP は,加算の対象となる二つの 16 ビットのパック 10 進数が, GR1,GR2 に設定されて,呼び出される。 (2) 副プログラム ADDP の呼出し元に戻ったとき,加算結果は GRØ に入っている。 〔プログラム3〕 ADDP START LD GRØ,GR1 g SRL GRØ,1 h CALL ADDP1 JUMP FIN P2 CALL ADDP2 FIN RET END g に関する解答群 エ SUBL GR1,=1 オ XOR GRØ,GR2 h に関する解答群 エ JPL P2 オ JZE P2
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||