casl2lib無視ファイルの設定ミスを修正
[YACASL2.git] / as / casl2lib / src / minim.casl
diff --git a/as/casl2lib/src/minim.casl b/as/casl2lib/src/minim.casl
new file mode 100644 (file)
index 0000000..83d973f
--- /dev/null
@@ -0,0 +1,23 @@
+;;; 複数のWORD値の中から、最小値を返す
+;;; 入力: GR1: WORD値を格納したアドレス GR2: 値の個数
+;;; 出力: GR0: 最小値
+MINIM   START
+        RPUSH
+        LD      GR0,0,GR1       ; MIN <- GR1アドレスの値
+        ST      GR0,MIN         ; ↓
+        LAD     GR3,0           ; GR3:インデックス 初期化
+S1      CPA     GR3,GR2         ; ループ先頭。(GR2 = GR3)の場合、終了
+        JZE     RET             ; ↓
+        LAD     GR1,1,GR1       ; GR1 <- GR1 + 1
+        LD      GR0,0,GR1       ;
+        CPA     GR0,MIN         ;
+        JPL     S2              ;
+        JZE     S2              ;
+        ST      GR0,MIN         ;
+S2      LAD     GR3,1,GR3       ;
+        JUMP    S1              ;
+RET     LD      GR0,MIN         ;
+        RPOP
+        RET
+MIN     DS      1               ; 最小値を格納
+        END