X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=test%2Fsystem%2Fcasl2_opt%2Fopt_slA%2F0.txt;fp=test%2Fsystem%2Fcasl2_opt%2Fopt_slA%2F0.txt;h=d6f1778374402c435f43060b6fe54b39eafcdba8;hb=473906d23322ef829ee8dad807895235d645981c;hp=0000000000000000000000000000000000000000;hpb=7ac339dcd755848e9820142422752fbdc8186b5c;p=YACASL2.git diff --git a/test/system/casl2_opt/opt_slA/0.txt b/test/system/casl2_opt/opt_slA/0.txt new file mode 100644 index 0000000..d6f1778 --- /dev/null +++ b/test/system/casl2_opt/opt_slA/0.txt @@ -0,0 +1,83 @@ +;;; sum_10.casl +;;; 出力 GR0: 1から10までの整数をすべて加算した値 +MAIN START + PUSH 0,GR1 + LAD GR0,0 ; GR0を初期化 + LD GR1,FST ; GR1に初項を転送 +LOOP ADDL GR0,GR1 ; ループ先頭 + ADDL GR1,STEP ; GR1 <- GR1 + 公差 + CPL GR1,LST ; GR1が末項より大きい場合は終了 + JPL FIN ; ↓ + JUMP LOOP ; ループ終端 +FIN POP GR1 + RET +FST DC 1 ; 初項 +LST DC 10 ; 末項 +STEP DC 1 ; 公差 + END + +Assemble ../../../../as/sample/sum_10.casl (0) +../../../../as/sample/sum_10.casl: 1:;;; sum_10.casl +../../../../as/sample/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/sample/sum_10.casl: 3:MAIN START +../../../../as/sample/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/sample/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/sample/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/sample/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/sample/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/sample/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/sample/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/sample/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/sample/sum_10.casl: 12:FIN POP GR1 +../../../../as/sample/sum_10.casl: 13: RET +../../../../as/sample/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/sample/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/sample/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/sample/sum_10.casl: 17: END + +Label:::: +MAIN ---> #0000 +MAIN.LOOP ---> #0006 +MAIN.FIN ---> #000F +MAIN.FST ---> #0011 +MAIN.LST ---> #0012 +MAIN.STEP ---> #0013 + +Assemble ../../../../as/sample/sum_10.casl (1) +../../../../as/sample/sum_10.casl: 1:;;; sum_10.casl +../../../../as/sample/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/sample/sum_10.casl: 3:MAIN START +../../../../as/sample/sum_10.casl: 4: PUSH 0,GR1 + #0000 #7001 + #0001 #0000 +../../../../as/sample/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 + #0002 #1200 + #0003 #0000 +../../../../as/sample/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 + #0004 #1010 + #0005 #0011 +../../../../as/sample/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 + #0006 #2601 +../../../../as/sample/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 + #0007 #2210 + #0008 #0013 +../../../../as/sample/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 + #0009 #4110 + #000A #0012 +../../../../as/sample/sum_10.casl: 10: JPL FIN ; ↓ + #000B #6500 + #000C #000F +../../../../as/sample/sum_10.casl: 11: JUMP LOOP ; ループ終端 + #000D #6400 + #000E #0006 +../../../../as/sample/sum_10.casl: 12:FIN POP GR1 + #000F #7110 +../../../../as/sample/sum_10.casl: 13: RET + #0010 #8100 +../../../../as/sample/sum_10.casl: 14:FST DC 1 ; 初項 + #0011 #0001 +../../../../as/sample/sum_10.casl: 15:LST DC 10 ; 末項 + #0012 #000A +../../../../as/sample/sum_10.casl: 16:STEP DC 1 ; 公差 + #0013 #0001 +../../../../as/sample/sum_10.casl: 17: END