X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=as%2Fsample%2Fsum_10.casl;h=cc88df1942f960fb7355b9b03169c7fc5c27e78c;hp=d691a105a267f13e5896327cdb32efda47c5acba;hb=d5687e0f30e8402985d569a595cc0bdadc89f725;hpb=a77e8363f86dfc38838990a174486166b7c5cbf2 diff --git a/as/sample/sum_10.casl b/as/sample/sum_10.casl index d691a10..cc88df1 100644 --- a/as/sample/sum_10.casl +++ b/as/sample/sum_10.casl @@ -1,17 +1,21 @@ ;;; sum_10.casl -;;; 出力 GR0: 1から10までの整数をすべて加算した値 +;;; 1から10までの整数をすべて加算した値をメモリーに格納する MAIN START PUSH 0,GR1 - LAD GR0,0 ; GR0を初期化 - LD GR1,FST ; GR1に初項を転送 -LOOP ADDL GR0,GR1 ; ループ先頭 + PUSH 0,GR2 + XOR GR2,GR2 ; GR2を初期化 + LD GR1,FST ; GR1に初項をメモリーから転送 +LOOP ADDL GR2,GR1 ; ループ先頭。GR2 <- GR2 + GR1 ADDL GR1,STEP ; GR1 <- GR1 + 公差 CPL GR1,LST ; GR1が末項より大きい場合は終了 JPL FIN ; ↓ JUMP LOOP ; ループ終端 -FIN POP GR1 +FIN ST GR2,RST ; GR2の結果をメモリーに転送 + POP GR2 + POP GR1 RET FST DC 1 ; 初項 LST DC 10 ; 末項 STEP DC 1 ; 公差 +RST DS 1 ; 結果 END