root/as/app/sum/sum_10_2.casl

/* [<][>][^][v][top][bottom][index][help] */
;;; sum_10.casl
;;; 出力 GR0: 1から10までの整数をすべて加算した値
;;; 依存プログラム: mull1.casl divl1.casl
MAIN    START
        PUSH    0,GR1
        PUSH    0,GR2
        LD      GR1,FST         ; GR1 <- (初項 + 末項)
        ADDL    GR1,LST         ; ↓
        PUSH    0,GR1           ; GR1を退避
        LD      GR1,LST         ; GR1 <- (末項 - 初項)
        SUBL    GR1,FST         ; ↓
        LD      GR2,GR1         ; ↓
        LD      GR2,STEP        ; GR2 <- STEP
        CALL    DIVL            ; GR0 <- GR1 / GR2
        LD      GR2,GR0         ; GR2 <- GR0
        LAD     GR2,1,GR2       ; GR2 <- GR2 + 1
        SRL     GR2,1           ; GR2 <- GR2 / 2
        POP     GR1             ; GR1を復元
        CALL    MULL            ; GR0 <- GR1 * GR2
        POP     GR2
        POP     GR1
        RET
FST     DC      1               ; 初項
LST     DC      10              ; 末項
STEP    DC      1               ; 公差
        END

/* [<][>][^][v][top][bottom][index][help] */