X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=as%2Fsample%2Fsum_10.casl;h=a7b92115c36b806eeb731e2c8bd15c545952477e;hb=refs%2Ftags%2Fv0.5p24;hp=d691a105a267f13e5896327cdb32efda47c5acba;hpb=03832f246ce06d0dae29f96c087b94c7086bb993;p=YACASL2.git diff --git a/as/sample/sum_10.casl b/as/sample/sum_10.casl index d691a10..a7b9211 100644 --- a/as/sample/sum_10.casl +++ b/as/sample/sum_10.casl @@ -1,17 +1,17 @@ ;;; 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 ; ループ先頭 + 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の結果をメモリーに転送 RET FST DC 1 ; 初項 LST DC 10 ; 末項 STEP DC 1 ; 公差 +RST DS 1 ; 結果 END