メモリーリークを修正
[YACASL2.git] / as / exam_fe / 2009_10 / Q12 / replace.casl
1 REPLACE START
2         RPUSH
3         LD      GR4,GR2         ; GR4 ← p
4         SRL     GR4,4           ; GR4 ← p/16
5         ADDA    GR1,GR4         ; GR1 を置換え対象語(第i語)に位置付ける。
6         AND     GR2,=#000F
7         LD      GR4,=16
8         SUBA    GR4,GR2
9         LD      GR5,GR0
10         LD      GR6,=#8000
11         SUBA    GR3,=1
12         SRA     GR6,0,GR3
13         LD      GR7,GR6
14         SRL     GR0,0,GR2
15         SRL     GR6,0,GR2
16         SLL     GR5,0,GR4
17         SLL     GR7,0,GR4
18         LD      GR2,0,GR1
19         XOR     GR6,GR2         ; 第i語のうち
20         AND     GR2,GR6         ; ビット列Bを入れる部分を0にする。
21         OR      GR2,GR0
22         ST      GR2,0,GR1
23         LD      GR2,1,GR1
24         XOR     GR7,GR2         ; 第(i+1)語のうち
25         AND     GR2,GR7         ; ビット列Bを入れる部分を0にする。
26         OR      GR2,GR5
27         ST      GR2,1,GR1
28         RPOP
29         RET
30         END