YACAL2: CASL2処理系
[YACASL2.git] / as / multi_sub.casl
1 ;GR1とGR2の積を、GR3に格納
2 MULTI   START
3         PUSH 0,GR4
4     PUSH 0,GR5
5         LAD     GR3,0
6     LAD GR4,1
7     LAD GR5,0
8 M1      AND GR1,GR1
9     JMI MMIN1
10     JPL M2
11     LAD GR3,0
12         JUMP MFIN
13 MMIN1 XOR GR1,IALL
14     LAD GR1,1,GR1
15     LD GR5,ON
16 M2  AND GR2,GR2
17     JMI MMIN2
18     JPL MLOOP
19     LAD GR3,0
20         JUMP MFIN
21 MMIN2 XOR GR5,ON
22         XOR GR2,IALL
23     LAD GR2,1,GR2
24 MLOOP   CPA     GR2,GR4
25         JMI     MCOND
26     ST  GR4,A
27         AND     GR4,GR2
28         JZE     MNEXT
29     ADDA        GR3,GR1
30         JOV     MFIN
31 MNEXT   SLA     GR1,1
32         JOV     MFIN
33         LD      GR4,A
34     SLA GR4,1
35     JUMP MLOOP
36 MCOND AND GR5,GR5
37         JZE MFIN
38         XOR GR3,IALL
39     LAD GR3,1,GR3
40 MFIN POP GR5
41         POP GR4
42         RET
43 IALL DC #FFFF
44 ON      DC 1
45 A       DS 1
46         END