X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=as%2FFUNC%2Fsum.casl;h=b9bfe118d677a1eb6522c1aabbaead437c73271c;hb=a4a4d9291958ee920beaec963000248b9523389b;hp=85592c33b26400f947bca0341378355c5bcacd2a;hpb=fb54b1c9d2fbc3d4a62c6b4d38ff68e9d3b25c26;p=YACASL2.git diff --git a/as/FUNC/sum.casl b/as/FUNC/sum.casl index 85592c3..b9bfe11 100644 --- a/as/FUNC/sum.casl +++ b/as/FUNC/sum.casl @@ -1,14 +1,16 @@ ;;; sum.casl -;;; 1からGR1で指定された値までの正数をすべて加算する +;;; 入力 GR1: 1以上の正数 +;;; 出力 GR2: 1からGR1で指定された値までの正数をすべて加算した値。 +;;; オーバーフローした場合は、#FFFF SUM START LAD GR2,0 LAD GR3,1 -SLOOP CPL GR3,GR1 - JPL SFIN +LOOP CPL GR3,GR1 + JPL FIN ADDL GR2,GR3 - JOV SERR + JOV OV LAD GR3,1,GR3 - JUMP SLOOP -SERR LAD GR2,#FFFF -SFIN RET + JUMP LOOP +OV LAD GR2,#FFFF +FIN RET END