YACAL2: CASL2処理系
[YACASL2.git] / test / astest / add_p / 0.txt
1
2 Assemble ../../../as/add_p.casl (0)
3 ../../../as/add_p.casl:1:MAIN   START
4 ../../../as/add_p.casl:2:BEGIN  LD      GR1,A
5 ../../../as/add_p.casl:3:       ADDA    GR1,B
6 ../../../as/add_p.casl:4:    CALL       ITOA
7 ../../../as/add_p.casl:5:    RET
8 ../../../as/add_p.casl:6:A      DC      999
9 ../../../as/add_p.casl:7:B      DC      998
10 ../../../as/add_p.casl:8:C      DS      1
11 ../../../as/add_p.casl:9:       END
12
13 Assemble ../../../as/itoa.casl (0)
14 ../../../as/itoa.casl:1:;GR1に格納された数値を表示
15 ../../../as/itoa.casl:2:ITOA    START
16 ../../../as/itoa.casl:3:        PUSH 0,GR2
17 ../../../as/itoa.casl:4:        PUSH 0,GR3
18 ../../../as/itoa.casl:5:        PUSH 0,GR4
19 ../../../as/itoa.casl:6:    LAD GR0,0
20 ../../../as/itoa.casl:7:    LAD GR2,0
21 ../../../as/itoa.casl:8:    AND GR1,GR1
22 ../../../as/itoa.casl:9:    JPL ILOOP
23 ../../../as/itoa.casl:10:    JZE ILOOP
24 ../../../as/itoa.casl:11:    LAD GR0,1
25 ../../../as/itoa.casl:12:    CALL INV
26 ../../../as/itoa.casl:13:ILOOP  CPA     GR1,TEN
27 ../../../as/itoa.casl:14:       JMI     INEXT
28 ../../../as/itoa.casl:15:       CALL    DIV
29 ../../../as/itoa.casl:16:    ADDA       GR4,ZCHAR
30 ../../../as/itoa.casl:17:    ST GR4,STR,GR2
31 ../../../as/itoa.casl:18:    LAD        GR2,1,GR2
32 ../../../as/itoa.casl:19:    LD GR1,GR3
33 ../../../as/itoa.casl:20:    JUMP       ILOOP
34 ../../../as/itoa.casl:21:INEXT  ADDA    GR1,ZCHAR
35 ../../../as/itoa.casl:22:       ST      GR1,STR,GR2
36 ../../../as/itoa.casl:23:       LAD     GR2,1,GR2
37 ../../../as/itoa.casl:24:    CPA GR0,=1
38 ../../../as/itoa.casl:25:    JPL        PRT
39 ../../../as/itoa.casl:26:    JMI        PRT
40 ../../../as/itoa.casl:27:    LD GR1,MINUS
41 ../../../as/itoa.casl:28:       ST      GR1,STR,GR2
42 ../../../as/itoa.casl:29:       LAD     GR2,1,GR2
43 ../../../as/itoa.casl:30:PRT    ST      GR2,LEN
44 ../../../as/itoa.casl:31:       LAD     GR1,STR
45 ../../../as/itoa.casl:32:    LD GR2,LEN
46 ../../../as/itoa.casl:33:    CALL REV
47 ../../../as/itoa.casl:34:       OUT     STR,LEN
48 ../../../as/itoa.casl:35:       POP GR4
49 ../../../as/itoa.casl:36:       POP GR3
50 ../../../as/itoa.casl:37:       POP GR2
51 ../../../as/itoa.casl:38:       RET
52 ../../../as/itoa.casl:39:TEN    DC      10
53 ../../../as/itoa.casl:40:ZCHAR DC '0'
54 ../../../as/itoa.casl:41:MINUS DC '-'
55 ../../../as/itoa.casl:42:STR    DS      6
56 ../../../as/itoa.casl:43:LEN    DS      1
57 ../../../as/itoa.casl:44:    END
58 ../../../as/itoa.casl:45:;GR1を10で割ったときの商をGR3、剰余をGR4に格納
59 ../../../as/itoa.casl:46:DIV    LD      GR4,GR1
60 ../../../as/itoa.casl:47:       LAD     GR3,0
61 ../../../as/itoa.casl:48:DLOOP  CPA     GR4,TEN
62 ../../../as/itoa.casl:49:       JMI     DFIN
63 ../../../as/itoa.casl:50:    SUBL GR4,TEN
64 ../../../as/itoa.casl:51:    LAD        GR3,1,GR3
65 ../../../as/itoa.casl:52:    JUMP       DLOOP
66 ../../../as/itoa.casl:53:DFIN RET
67 ../../../as/itoa.casl:54:       END
68 ../../../as/itoa.casl:55:;アドレスがGR1、長さがGR2の文字列を逆順に並べ替える
69 ../../../as/itoa.casl:56:;例: 12345 -> 54321
70 ../../../as/itoa.casl:57:REV    START
71 ../../../as/itoa.casl:58:       PUSH    0,GR3
72 ../../../as/itoa.casl:59:    PUSH       0,GR4
73 ../../../as/itoa.casl:60:    PUSH       0,GR5
74 ../../../as/itoa.casl:61:       LAD     GR3,1
75 ../../../as/itoa.casl:62:RPU    CPA     GR2,GR3
76 ../../../as/itoa.casl:63:       JMI     RNEXT
77 ../../../as/itoa.casl:64:    LD GR4,GR1
78 ../../../as/itoa.casl:65:    ADDA       GR4,GR3
79 ../../../as/itoa.casl:66:    LD GR4,-1,GR4
80 ../../../as/itoa.casl:67:       PUSH 0,GR4
81 ../../../as/itoa.casl:68:    LAD        GR3,1,GR3
82 ../../../as/itoa.casl:69:    JUMP       RPU
83 ../../../as/itoa.casl:70:RNEXT    LAD   GR3,1
84 ../../../as/itoa.casl:71:RPO    CPA     GR2,GR3
85 ../../../as/itoa.casl:72:       JMI     RFIN
86 ../../../as/itoa.casl:73:    POP GR4
87 ../../../as/itoa.casl:74:    LD GR5,GR1
88 ../../../as/itoa.casl:75:    ADDA GR5,GR3
89 ../../../as/itoa.casl:76:    ST GR4,-1,GR5
90 ../../../as/itoa.casl:77:    LAD        GR3,1,GR3
91 ../../../as/itoa.casl:78:    JUMP RPO
92 ../../../as/itoa.casl:79:RFIN POP GR5
93 ../../../as/itoa.casl:80:       POP     GR4
94 ../../../as/itoa.casl:81:    POP        GR3
95 ../../../as/itoa.casl:82:       RET
96 ../../../as/itoa.casl:83:       END
97 ../../../as/itoa.casl:84:;GR1の内容をマイナス値にする
98 ../../../as/itoa.casl:85:;例: 10 -> -10, -20 -> 20
99 ../../../as/itoa.casl:86:INV    START
100 ../../../as/itoa.casl:87:       XOR     GR1,=#FFFF
101 ../../../as/itoa.casl:88:    LAD        GR1,1,GR1
102 ../../../as/itoa.casl:89:    RET
103 ../../../as/itoa.casl:90:       END
104
105 Label::::
106 STR ---> #005F
107 DFIN ---> #0073
108 ITOA ---> #000A
109 A ---> #0007
110 B ---> #0008
111 C ---> #0009
112 RNEXT ---> #0089
113 MINUS ---> #005E
114 RFIN ---> #0097
115 ILOOP ---> #001D
116 DIV ---> #0066
117 REV ---> #0074
118 BEGIN ---> #0000
119 PRT ---> #003E
120 ZCHAR ---> #005D
121 MAIN ---> #0000
122 INEXT ---> #002C
123 INV ---> #009B
124 RPO ---> #008B
125 RPU ---> #007C
126 DLOOP ---> #0069
127 LEN ---> #0065
128 TEN ---> #005C
129
130 Assemble ../../../as/add_p.casl (1)
131 ../../../as/add_p.casl:1:MAIN   START
132 ../../../as/add_p.casl:2:BEGIN  LD      GR1,A
133         #0000   #1010
134         #0001   #0007
135 ../../../as/add_p.casl:3:       ADDA    GR1,B
136         #0002   #2010
137         #0003   #0008
138 ../../../as/add_p.casl:4:    CALL       ITOA
139         #0004   #8000
140         #0005   #000A
141 ../../../as/add_p.casl:5:    RET
142         #0006   #8100
143 ../../../as/add_p.casl:6:A      DC      999
144         #0007   #03E7
145 ../../../as/add_p.casl:7:B      DC      998
146         #0008   #03E6
147 ../../../as/add_p.casl:8:C      DS      1
148         #0009   #0000
149 ../../../as/add_p.casl:9:       END
150
151 Assemble ../../../as/itoa.casl (1)
152 ../../../as/itoa.casl:1:;GR1に格納された数値を表示
153 ../../../as/itoa.casl:2:ITOA    START
154 ../../../as/itoa.casl:3:        PUSH 0,GR2
155         #000A   #7002
156         #000B   #0000
157 ../../../as/itoa.casl:4:        PUSH 0,GR3
158         #000C   #7003
159         #000D   #0000
160 ../../../as/itoa.casl:5:        PUSH 0,GR4
161         #000E   #7004
162         #000F   #0000
163 ../../../as/itoa.casl:6:    LAD GR0,0
164         #0010   #1200
165         #0011   #0000
166 ../../../as/itoa.casl:7:    LAD GR2,0
167         #0012   #1220
168         #0013   #0000
169 ../../../as/itoa.casl:8:    AND GR1,GR1
170         #0014   #3411
171 ../../../as/itoa.casl:9:    JPL ILOOP
172         #0015   #6500
173         #0016   #001D
174 ../../../as/itoa.casl:10:    JZE ILOOP
175         #0017   #6300
176         #0018   #001D
177 ../../../as/itoa.casl:11:    LAD GR0,1
178         #0019   #1200
179         #001A   #0001
180 ../../../as/itoa.casl:12:    CALL INV
181         #001B   #8000
182         #001C   #009B
183 ../../../as/itoa.casl:13:ILOOP  CPA     GR1,TEN
184         #001D   #4010
185         #001E   #005C
186 ../../../as/itoa.casl:14:       JMI     INEXT
187         #001F   #6100
188         #0020   #002C
189 ../../../as/itoa.casl:15:       CALL    DIV
190         #0021   #8000
191         #0022   #0066
192 ../../../as/itoa.casl:16:    ADDA       GR4,ZCHAR
193         #0023   #2040
194         #0024   #005D
195 ../../../as/itoa.casl:17:    ST GR4,STR,GR2
196         #0025   #1142
197         #0026   #005F
198 ../../../as/itoa.casl:18:    LAD        GR2,1,GR2
199         #0027   #1222
200         #0028   #0001
201 ../../../as/itoa.casl:19:    LD GR1,GR3
202         #0029   #1413
203 ../../../as/itoa.casl:20:    JUMP       ILOOP
204         #002A   #6400
205         #002B   #001D
206 ../../../as/itoa.casl:21:INEXT  ADDA    GR1,ZCHAR
207         #002C   #2010
208         #002D   #005D
209 ../../../as/itoa.casl:22:       ST      GR1,STR,GR2
210         #002E   #1112
211         #002F   #005F
212 ../../../as/itoa.casl:23:       LAD     GR2,1,GR2
213         #0030   #1222
214         #0031   #0001
215 ../../../as/itoa.casl:24:    CPA GR0,=1
216         #00A0   #0001
217         #0032   #4000
218         #0033   #00A0
219 ../../../as/itoa.casl:25:    JPL        PRT
220         #0034   #6500
221         #0035   #003E
222 ../../../as/itoa.casl:26:    JMI        PRT
223         #0036   #6100
224         #0037   #003E
225 ../../../as/itoa.casl:27:    LD GR1,MINUS
226         #0038   #1010
227         #0039   #005E
228 ../../../as/itoa.casl:28:       ST      GR1,STR,GR2
229         #003A   #1112
230         #003B   #005F
231 ../../../as/itoa.casl:29:       LAD     GR2,1,GR2
232         #003C   #1222
233         #003D   #0001
234 ../../../as/itoa.casl:30:PRT    ST      GR2,LEN
235         #003E   #1120
236         #003F   #0065
237 ../../../as/itoa.casl:31:       LAD     GR1,STR
238         #0040   #1210
239         #0041   #005F
240 ../../../as/itoa.casl:32:    LD GR2,LEN
241         #0042   #1020
242         #0043   #0065
243 ../../../as/itoa.casl:33:    CALL REV
244         #0044   #8000
245         #0045   #0074
246 ../../../as/itoa.casl:34:       OUT     STR,LEN
247         #0046   #7001
248         #0047   #0000
249         #0048   #7002
250         #0049   #0000
251         #004A   #1210
252         #004B   #005F
253         #004C   #1020
254         #004D   #0065
255         #004E   #F000
256         #004F   #0002
257         #0050   #1210
258         #0051   #00A1
259         #00A1   #000A
260         #0052   #1220
261         #0053   #0001
262         #0054   #F000
263         #0055   #0002
264         #0056   #7120
265         #0057   #7110
266 ../../../as/itoa.casl:35:       POP GR4
267         #0058   #7140
268 ../../../as/itoa.casl:36:       POP GR3
269         #0059   #7130
270 ../../../as/itoa.casl:37:       POP GR2
271         #005A   #7120
272 ../../../as/itoa.casl:38:       RET
273         #005B   #8100
274 ../../../as/itoa.casl:39:TEN    DC      10
275         #005C   #000A
276 ../../../as/itoa.casl:40:ZCHAR DC '0'
277         #005D   #0030
278 ../../../as/itoa.casl:41:MINUS DC '-'
279         #005E   #002D
280 ../../../as/itoa.casl:42:STR    DS      6
281         #005F   #0000
282         #0060   #0000
283         #0061   #0000
284         #0062   #0000
285         #0063   #0000
286         #0064   #0000
287 ../../../as/itoa.casl:43:LEN    DS      1
288         #0065   #0000
289 ../../../as/itoa.casl:44:    END
290 ../../../as/itoa.casl:45:;GR1を10で割ったときの商をGR3、剰余をGR4に格納
291 ../../../as/itoa.casl:46:DIV    LD      GR4,GR1
292         #0066   #1441
293 ../../../as/itoa.casl:47:       LAD     GR3,0
294         #0067   #1230
295         #0068   #0000
296 ../../../as/itoa.casl:48:DLOOP  CPA     GR4,TEN
297         #0069   #4040
298         #006A   #005C
299 ../../../as/itoa.casl:49:       JMI     DFIN
300         #006B   #6100
301         #006C   #0073
302 ../../../as/itoa.casl:50:    SUBL GR4,TEN
303         #006D   #2340
304         #006E   #005C
305 ../../../as/itoa.casl:51:    LAD        GR3,1,GR3
306         #006F   #1233
307         #0070   #0001
308 ../../../as/itoa.casl:52:    JUMP       DLOOP
309         #0071   #6400
310         #0072   #0069
311 ../../../as/itoa.casl:53:DFIN RET
312         #0073   #8100
313 ../../../as/itoa.casl:54:       END
314 ../../../as/itoa.casl:55:;アドレスがGR1、長さがGR2の文字列を逆順に並べ替える
315 ../../../as/itoa.casl:56:;例: 12345 -> 54321
316 ../../../as/itoa.casl:57:REV    START
317 ../../../as/itoa.casl:58:       PUSH    0,GR3
318         #0074   #7003
319         #0075   #0000
320 ../../../as/itoa.casl:59:    PUSH       0,GR4
321         #0076   #7004
322         #0077   #0000
323 ../../../as/itoa.casl:60:    PUSH       0,GR5
324         #0078   #7005
325         #0079   #0000
326 ../../../as/itoa.casl:61:       LAD     GR3,1
327         #007A   #1230
328         #007B   #0001
329 ../../../as/itoa.casl:62:RPU    CPA     GR2,GR3
330         #007C   #4423
331 ../../../as/itoa.casl:63:       JMI     RNEXT
332         #007D   #6100
333         #007E   #0089
334 ../../../as/itoa.casl:64:    LD GR4,GR1
335         #007F   #1441
336 ../../../as/itoa.casl:65:    ADDA       GR4,GR3
337         #0080   #2443
338 ../../../as/itoa.casl:66:    LD GR4,-1,GR4
339         #0081   #1044
340         #0082   #FFFF
341 ../../../as/itoa.casl:67:       PUSH 0,GR4
342         #0083   #7004
343         #0084   #0000
344 ../../../as/itoa.casl:68:    LAD        GR3,1,GR3
345         #0085   #1233
346         #0086   #0001
347 ../../../as/itoa.casl:69:    JUMP       RPU
348         #0087   #6400
349         #0088   #007C
350 ../../../as/itoa.casl:70:RNEXT    LAD   GR3,1
351         #0089   #1230
352         #008A   #0001
353 ../../../as/itoa.casl:71:RPO    CPA     GR2,GR3
354         #008B   #4423
355 ../../../as/itoa.casl:72:       JMI     RFIN
356         #008C   #6100
357         #008D   #0097
358 ../../../as/itoa.casl:73:    POP GR4
359         #008E   #7140
360 ../../../as/itoa.casl:74:    LD GR5,GR1
361         #008F   #1451
362 ../../../as/itoa.casl:75:    ADDA GR5,GR3
363         #0090   #2453
364 ../../../as/itoa.casl:76:    ST GR4,-1,GR5
365         #0091   #1145
366         #0092   #FFFF
367 ../../../as/itoa.casl:77:    LAD        GR3,1,GR3
368         #0093   #1233
369         #0094   #0001
370 ../../../as/itoa.casl:78:    JUMP RPO
371         #0095   #6400
372         #0096   #008B
373 ../../../as/itoa.casl:79:RFIN POP GR5
374         #0097   #7150
375 ../../../as/itoa.casl:80:       POP     GR4
376         #0098   #7140
377 ../../../as/itoa.casl:81:    POP        GR3
378         #0099   #7130
379 ../../../as/itoa.casl:82:       RET
380         #009A   #8100
381 ../../../as/itoa.casl:83:       END
382 ../../../as/itoa.casl:84:;GR1の内容をマイナス値にする
383 ../../../as/itoa.casl:85:;例: 10 -> -10, -20 -> 20
384 ../../../as/itoa.casl:86:INV    START
385 ../../../as/itoa.casl:87:       XOR     GR1,=#FFFF
386         #00A2   #FFFF
387         #009B   #3210
388         #009C   #00A2
389 ../../../as/itoa.casl:88:    LAD        GR1,1,GR1
390         #009D   #1211
391         #009E   #0001
392 ../../../as/itoa.casl:89:    RET
393         #009F   #8100
394 ../../../as/itoa.casl:90:       END
395 1997