X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=as%2FFE_TESTS%2F2009_04%2FQ12%2Fmuls2.casl;fp=as%2FFE_TESTS%2F2009_04%2FQ12%2Fmuls2.casl;h=0000000000000000000000000000000000000000;hb=58ee37be62a5e359d0f6eb603cc86b5692f74b90;hp=b4143cfeed414ab5e0c8725860141e32ad5501aa;hpb=85744703060a90c21ee325d3a692f80233bc281f;p=YACASL2.git diff --git a/as/FE_TESTS/2009_04/Q12/muls2.casl b/as/FE_TESTS/2009_04/Q12/muls2.casl deleted file mode 100644 index b4143cf..0000000 --- a/as/FE_TESTS/2009_04/Q12/muls2.casl +++ /dev/null @@ -1,45 +0,0 @@ -;平成21年 春期 基本情報技術者 午後 問12-2 -MUL START ; 32ビット×32ビット→32ビット - RPUSH - PUSH 0,GR3 - PUSH 0,GR2 - LD GR2,1,GR2 ; 乗数下位語を取り出してGR2に設定 - CALL MULS ; 被乗数×乗数下位語→積(A) - POP GR2 - LD GR2,0,GR2 - LAD GR3,SV ; 結果の格納先として作業領域を設定 - CALL MULS ; 被乗数×乗数上位語→積(B) - LD GR6,1,GR3 - POP GR3 - ADDL GR6,0,GR3 ; 積(A)の上位語と積(B)の下位語を加算 - ST GR6,0,GR3 - RPOP - RET -SV DS 2 - END -MULS START ; 32ビット×16ビット→32ビット - RPUSH - LAD GR6,0 ; 積 上位語の初期化 - LAD GR7,0 ; 積 下位語の初期化 - LD GR4,0,GR1 ; 被乗数 上位語の取出し - LD GR5,1,GR1 ; 被乗数 下位語の取出し -LP SRL GR2,1 ; 乗数を1ビット右にシフト - JOV ADD32 - JZE FIN - JUMP NEXT ; 加算処理をスキップ -ADD32 ADDL GR6,GR4 ; 32ビット+32ビット→32ビット - ADDL GR7,GR5 - JOV ADJ1 - JUMP NEXT -ADJ1 ADDL GR6,=1 ; けた上げ処理 -NEXT SLL GR4,1 ; 被乗数(32ビット)を1ビット左にシフト - SLL GR5,1 - JOV ADJ2 - JUMP LP -ADJ2 OR GR4,=1 - JUMP LP -FIN ST GR6,0,GR3 ; 乗算結果の格納 - ST GR7,1,GR3 - RPOP - RET - END