CASLアプリを格納するas/app、未整理のCASLファイルを格納するmiscを作成。casl2libのテストを追加
[YACASL2.git] / as / misc / mula0.casl
diff --git a/as/misc/mula0.casl b/as/misc/mula0.casl
deleted file mode 100644 (file)
index 138fe8c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-;GR1の値とGR2の値の積をGR0に格納
-MULA    START
-        RPUSH
-        LAD     GR3,0           ; インデックス
-        LAD     GR4,0           ; マイナスフラグ
-CHK1    CALL    CHKVAL          ; (GR1 < 0)の場合は正負を反転させ、GR0 <- 1
-        JOV     MFIN
-        LD      GR4,GR0         ; マイナスフラグをオン
-CHK2    PUSH    0,GR1           ; GR1を退避
-        LD      GR1,GR2         ; GR2をGR1へロード
-        CALL    CHKVAL          ; (GR1 < 0)の場合は正負を反転させ、GR0 <- 1
-        JOV     C2OV
-        LD      GR2,GR1         ; GR1をGR2へロード
-        XOR     GR4,GR0         ; マイナスフラグを反転
-        POP     GR1             ; GR1を復元
-        LAD     GR0,0           ; 積
-        JUMP    MLOOP
-C2OV    POP     GR1             ;
-        JUMP    MFIN
-MLOOP   CPA     GR2,GR3         ; ループ先頭。(GR2 = GR3)の場合、ループ脱出
-        JZE     MMIN            ; ↓
-        ADDA    GR0,GR1         ; GR0 <- GR0 + GR1
-        JOV     MFIN            ; オーバーフローした場合、ループ脱出
-        LAD     GR3,1,GR3       ; GR3 <- GR3 + 1
-        JUMP    MLOOP           ; ループ終端
-MMIN    AND     GR4,GR4         ; マイナスフラグがオフの場合、MFINへジャンプ
-        JZE     MFIN            ; ↓
-        PUSH    0,GR1           ; GR1を退避
-        LD      GR1,GR0         ; GR1にGR0をロード
-        CALL    MABS            ; GR1を絶対値に変換
-        JOV     MMF             ; オーバーフロー(GR1 = -32768)の場合、MMFへジャンプ
-        LD      GR0,GR1         ; GR0にGR1をロード
-MMF     POP     GR1             ; GR1を復元
-MFIN    RPOP
-        RET
-        END
-;;; GR1が0未満の場合は、絶対値に変換し、GR0に1を設定
-CHKVAL  START
-        LAD     GR0,0
-        AND     GR1,GR1         ; (GR1 >= 0)の場合は、CFINへジャンプ
-        JPL     CFIN            ; ↓
-        JZE     CFIN            ; ↓
-        LAD     GR0,1           ; GR0に1をロード
-        CALL    MABS            ; GR1を絶対値に変換
-CFIN    RET
-        END
-;;; GR1の値の正負を反転させる。
-;;; 例: -10 -> 10、10 -> -10
-MABS    START
-        XOR     GR1,=#FFFF      ; GR1のビット値を反転
-        ADDA    GR1,=1          ; GR1 <- GR1 + 1
-        RET
-        END