問13
次のアセンブラプログラムの説明及びプログラムを読んで, 設問 1 〜 3 に答えよ。
〔プログラムの説明〕
指定された範囲のメモリの内容を,16 進数として出力する副プログラムである。
(1) 主プログラムは範囲の先頭アドレスを GR1 に,範囲の終端アドレスを GR2 に設定し,副プログラム HEXDUMP を呼ぶ。
(2) 副プログラム HEXDUMP によって出力されるレコードは,次の形式である。
(3) 副プログラム HEXDUMP は,別の副プログラム HEXCNV を使用する。 HEXCNV は,GR5 に格納された 1 語の内容を 4 けたの 16 進数字列に変換し, GR4 が指す出力領域に格納する。
〔プログラム〕
HEXDUMP START RPUSH LP1 LAD GR4,OUTBUF ; 出力ポインタの初期化 LAD GR3,16 ; 行内語数カウンタの初期化 LD GR5,GR1 CALL HEXCNV ; アドレスの 16 進変換 LP2 LD GR5,=' ' ST GR5,0,GR4 LAD GR4,1,GR4 LD GR5,0,GR1 CALL HEXCNV ; 1 語分の 16 進変換 LAD GR1,1,GR1 CPL GR1,GR2 SUBA GR3,=1 JNZ LP2 ; 1 行分(16 語)終了? OUT OUTBUF,OUTLEN JUMP LP1 FIN LAD GR5,OUTBUF ST GR4,LENG OUT OUTBUF,LENG RPOP RET OUTBUF DS 84 OUTLEN DC 84 LENG DS 1 END HEXCNV START LAD GR6,0 ; シフト量を 0 に初期設定 LP LD GR7,GR5 SLL GR7,0,GR6 ; 変換対象を上位 4 ビットに設定 LD GR7,CTABLE,GR7 ST GR7,0,GR4 LAD GR4,1,GR4 LAD GR6,4,GR6 CPA GR6,=16 ; 1 語分の 16 進変換完了? JMI LP RET CTABLE DC '0123456789ABCDEF' END
a に関する解答群
ア JMI FIN イ JMI LP1 ウ JPL FIN
エ JPL LP1 オ JZE FIN カ JZE LP1
b に関する解答群
ア ADDL GR4,GR5 イ LAD GR4,84,GR5 ウ LD GR4,84,GR5
エ SUBL GR4,GR5
c に関する解答群
ア AND GR7,=#000F イ AND GR7,=#F000 ウ OR GR7,=#000F
エ OR GR7,=#F000 オ SRL GR7,12 カ SRL GR7,13
解答群
CPA GR7,=9 JPL AF LAD GR7,#0030,GR7 ; 数字 0 の文字コードを加算 JUMP CONT AF CONT ST GR7,0,GR4
ア LAD GR7,#0031,GR7 イ LAD GR7,#0037,GR7
ウ LAD GR7,#0038,GR7 エ LAD GR7,#0039,GR7
オ LAD GR7,#0041,GR7