+++ /dev/null
-;;; 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