X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=test%2Fsystem%2Fcasl2_opt%2Fopt_slaOn%2F0.txt;h=b58aeff3a209b6987d4563ed355da6bc3dd9a51e;hp=d6f1778374402c435f43060b6fe54b39eafcdba8;hb=ce897094478335caf357601548af1b06cbad1188;hpb=473906d23322ef829ee8dad807895235d645981c diff --git a/test/system/casl2_opt/opt_slaOn/0.txt b/test/system/casl2_opt/opt_slaOn/0.txt index d6f1778..b58aeff 100644 --- a/test/system/casl2_opt/opt_slaOn/0.txt +++ b/test/system/casl2_opt/opt_slaOn/0.txt @@ -1,83 +1,85 @@ -;;; 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: 2:;;; 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 +../../../../as/sample/sum_10.casl: 5: PUSH 0,GR2 +../../../../as/sample/sum_10.casl: 6: XOR GR2,GR2 ; GR2を初期化 +../../../../as/sample/sum_10.casl: 7: LD GR1,FST ; GR1に初項をメモリーから転送 +../../../../as/sample/sum_10.casl: 8:LOOP ADDL GR2,GR1 ; ループ先頭。GR2 <- GR2 + GR1 +../../../../as/sample/sum_10.casl: 9: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/sample/sum_10.casl: 10: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/sample/sum_10.casl: 11: JPL FIN ; ↓ +../../../../as/sample/sum_10.casl: 12: JUMP LOOP ; ループ終端 +../../../../as/sample/sum_10.casl: 13:FIN ST GR2,RST ; GR2の結果をメモリーに転送 +../../../../as/sample/sum_10.casl: 14: POP GR2 +../../../../as/sample/sum_10.casl: 15: POP GR1 +../../../../as/sample/sum_10.casl: 16: RET +../../../../as/sample/sum_10.casl: 17:FST DC 1 ; 初項 +../../../../as/sample/sum_10.casl: 18:LST DC 10 ; 末項 +../../../../as/sample/sum_10.casl: 19:STEP DC 1 ; 公差 +../../../../as/sample/sum_10.casl: 20:RST DS 1 ; 結果 +../../../../as/sample/sum_10.casl: 21: END Label:::: MAIN ---> #0000 -MAIN.LOOP ---> #0006 -MAIN.FIN ---> #000F -MAIN.FST ---> #0011 -MAIN.LST ---> #0012 -MAIN.STEP ---> #0013 +MAIN.LOOP ---> #0007 +MAIN.FIN ---> #0010 +MAIN.FST ---> #0015 +MAIN.LST ---> #0016 +MAIN.STEP ---> #0017 +MAIN.RST ---> #0018 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: 2:;;; 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 +../../../../as/sample/sum_10.casl: 5: PUSH 0,GR2 + #0002 #7002 #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 +../../../../as/sample/sum_10.casl: 6: XOR GR2,GR2 ; GR2を初期化 + #0004 #3622 +../../../../as/sample/sum_10.casl: 7: LD GR1,FST ; GR1に初項をメモリーから転送 + #0005 #1010 + #0006 #0015 +../../../../as/sample/sum_10.casl: 8:LOOP ADDL GR2,GR1 ; ループ先頭。GR2 <- GR2 + GR1 + #0007 #2621 +../../../../as/sample/sum_10.casl: 9: ADDL GR1,STEP ; GR1 <- GR1 + 公差 + #0008 #2210 + #0009 #0017 +../../../../as/sample/sum_10.casl: 10: CPL GR1,LST ; GR1が末項より大きい場合は終了 + #000A #4110 + #000B #0016 +../../../../as/sample/sum_10.casl: 11: JPL FIN ; ↓ + #000C #6500 + #000D #0010 +../../../../as/sample/sum_10.casl: 12: JUMP LOOP ; ループ終端 + #000E #6400 + #000F #0007 +../../../../as/sample/sum_10.casl: 13:FIN ST GR2,RST ; GR2の結果をメモリーに転送 + #0010 #1120 + #0011 #0018 +../../../../as/sample/sum_10.casl: 14: POP GR2 + #0012 #7120 +../../../../as/sample/sum_10.casl: 15: POP GR1 + #0013 #7110 +../../../../as/sample/sum_10.casl: 16: RET + #0014 #8100 +../../../../as/sample/sum_10.casl: 17:FST DC 1 ; 初項 + #0015 #0001 +../../../../as/sample/sum_10.casl: 18:LST DC 10 ; 末項 + #0016 #000A +../../../../as/sample/sum_10.casl: 19:STEP DC 1 ; 公差 + #0017 #0001 +../../../../as/sample/sum_10.casl: 20:RST DS 1 ; 結果 + #0018 #0000 +../../../../as/sample/sum_10.casl: 21: END +0000000 7001 0000 7002 0000 3622 1010 0015 2621 +0000020 2210 0017 4110 0016 6500 0010 6400 0007 +0000040 1120 0018 7120 7110 8100 0001 000a 0001 +0000060 0000 +0000062