X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=as%2Fmisc%2Fsum_10_2.casl;h=640513862a843917cd1cbb405bb1e7f6b6eec5d1;hb=a0b34ca06b5e92ee139895159dbced007b276384;hp=f9d90a619172d5351c03b1877f5cf76ae51b13f8;hpb=4fe8479d27f535a0ff44c9f6ce270249934e980f;p=YACASL2.git diff --git a/as/misc/sum_10_2.casl b/as/misc/sum_10_2.casl index f9d90a6..6405138 100644 --- a/as/misc/sum_10_2.casl +++ b/as/misc/sum_10_2.casl @@ -4,24 +4,23 @@ MAIN START PUSH 0,GR1 PUSH 0,GR2 - ;; GR1に(初項 + 末項)を入力 - LD GR1,FST - ADDL GR1,LST - ;; GR2に項数を入力 - LD GR2,LST - SUBL GR2,GR1 - RPUSH - LD GR1,GR2 - LD GR2,STEP - CALL DIVL - RPOP - LAD GR2,1,GR0 - CALL MULL - SRL GR0,1 + LD GR1,FST ; GR1 <- (初項 + 末項) + ADDL GR1,LST ; ↓ + PUSH 0,GR1 ; GR1を退避 + LD GR1,LST ; GR1 <- (末項 - 初項) + SUBL GR1,FST ; ↓ + LD GR2,GR1 ; ↓ + LD GR2,STEP ; GR2 <- STEP + CALL DIVL ; GR0 <- GR1 / GR2 + LD GR2,GR0 ; GR2 <- GR0 + LAD GR2,1,GR2 ; GR2 <- GR2 + 1 + SRL GR2,1 ; GR2 <- GR2 / 2 + POP GR1 ; GR1を復元 + CALL MULL ; GR0 <- GR1 * GR2 POP GR2 POP GR1 RET -FST DC 1 -LST DC 10 -STEP DC 1 +FST DC 1 ; 初項 +LST DC 10 ; 末項 +STEP DC 1 ; 公差 END