valgrindのオプションを変更
[YACASL2.git] / as / casl2lib / src / minim.casl
1 ;;; 複数のWORD値の中から、最小値を返す
2 ;;; 入力: GR1: WORD値を格納したアドレス GR2: 値の個数
3 ;;; 出力: GR0: 最小値
4 MINIM   START
5         RPUSH
6         LD      GR0,0,GR1       ; MIN <- GR1アドレスの値
7         ST      GR0,MIN         ; ↓
8         LAD     GR3,0           ; GR3:インデックス 初期化
9 S1      CPA     GR3,GR2         ; ループ先頭。(GR2 = GR3)の場合、終了
10         JZE     RET             ; ↓
11         LAD     GR1,1,GR1       ; GR1 <- GR1 + 1
12         LD      GR0,0,GR1       ;
13         CPA     GR0,MIN         ;
14         JPL     S2              ;
15         JZE     S2              ;
16         ST      GR0,MIN         ;
17 S2      LAD     GR3,1,GR3       ;
18         JUMP    S1              ;
19 RET     LD      GR0,MIN         ;
20         RPOP
21         RET
22 MIN     DS      1               ; 最小値を格納
23         END