;;; 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