Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1126 | savelij | 1 | cpu s912zvh128f2clq |
2 | page 0 |
||
3 | padding off |
||
4 | |||
5 | bstruct struct dots |
||
6 | value ds.b 1 |
||
7 | bflg defbit value,5 |
||
8 | bfld defbitfield value,3:1 |
||
9 | ends |
||
10 | org $123 |
||
11 | myb bstruct |
||
12 | |||
13 | wstruct struct dots |
||
14 | value ds.w 1 |
||
15 | wflg defbit value,12 |
||
16 | wfld defbitfield value,5:7 |
||
17 | ends |
||
18 | org $240 |
||
19 | myw wstruct |
||
20 | |||
21 | lstruct struct dots |
||
22 | value ds.l 1 |
||
23 | lflg defbit value,25 |
||
24 | lfld defbitfield value,5:26 |
||
25 | ends |
||
26 | org $280 |
||
27 | myl lstruct |
||
28 | |||
29 | pstruct struct dots |
||
30 | value ds.p 1 |
||
31 | pfld defbitfield value,5:18 |
||
32 | ends |
||
33 | org $380 |
||
34 | myp pstruct |
||
35 | |||
36 | org $1000 |
||
37 | |||
38 | nop |
||
39 | bgnd |
||
40 | clc |
||
41 | cli |
||
42 | clv |
||
43 | rti |
||
44 | rts |
||
45 | sec |
||
46 | sei |
||
47 | sev |
||
48 | stop |
||
49 | swi |
||
50 | sys |
||
51 | wai |
||
52 | |||
53 | irp op,bcc,bcs,beq,bge,bgt,bhi,bhs,ble,blo,bls,blt,bmi,bne,bpl,bra,bsr,bvc,bvs |
||
54 | op *+10 |
||
55 | op *+100 |
||
56 | op.s *+10 |
||
57 | op.l *+10 |
||
58 | op *+100 |
||
59 | endm |
||
60 | |||
61 | abs d0 |
||
62 | abs.b d0 |
||
63 | abs d1 |
||
64 | abs.b d1 |
||
65 | abs d2 |
||
66 | abs.w d2 |
||
67 | abs d3 |
||
68 | abs.w d3 |
||
69 | abs d4 |
||
70 | abs.w d4 |
||
71 | abs d5 |
||
72 | abs.w d5 |
||
73 | abs d6 |
||
74 | abs.l d6 |
||
75 | abs d7 |
||
76 | abs.l d7 |
||
77 | |||
78 | irp instr,adc,add,and,bit,eor,or,sbc,sub,cmp |
||
79 | instr d0,d1 |
||
80 | instr d0,#-1 |
||
81 | instr d0,#1 |
||
82 | instr d0,#2 |
||
83 | instr d0,#3 |
||
84 | instr d0,#4 |
||
85 | instr d0,#5 |
||
86 | instr d0,#6 |
||
87 | instr d0,#7 |
||
88 | instr d0,#8 |
||
89 | instr d0,#9 |
||
90 | instr d0,#10 |
||
91 | instr d0,#11 |
||
92 | instr d0,#12 |
||
93 | instr d0,#13 |
||
94 | instr d0,#14 |
||
95 | instr d0,#15 |
||
96 | instr d0,#$ff |
||
97 | instr d0,#$fe |
||
98 | instr d0,#$40 |
||
99 | instr d3,d5 |
||
100 | instr d3,#-1 |
||
101 | instr d3,#1 |
||
102 | instr d3,#2 |
||
103 | instr d3,#3 |
||
104 | instr d3,#4 |
||
105 | instr d3,#5 |
||
106 | instr d3,#6 |
||
107 | instr d3,#7 |
||
108 | instr d3,#8 |
||
109 | instr d3,#9 |
||
110 | instr d3,#10 |
||
111 | instr d3,#11 |
||
112 | instr d3,#12 |
||
113 | instr d3,#13 |
||
114 | instr d3,#14 |
||
115 | instr d3,#15 |
||
116 | instr d3,#$ffff |
||
117 | instr d3,#$ff |
||
118 | instr d3,#$fffe |
||
119 | instr d3,#$3040 |
||
120 | instr d6,d7 |
||
121 | instr d6,#-1 |
||
122 | instr d6,#1 |
||
123 | instr d6,#2 |
||
124 | instr d6,#3 |
||
125 | instr d6,#4 |
||
126 | instr d6,#5 |
||
127 | instr d6,#6 |
||
128 | instr d6,#7 |
||
129 | instr d6,#8 |
||
130 | instr d6,#9 |
||
131 | instr d6,#10 |
||
132 | instr d6,#11 |
||
133 | instr d6,#12 |
||
134 | instr d6,#13 |
||
135 | instr d6,#14 |
||
136 | instr d6,#15 |
||
137 | instr d6,#$ffffffff |
||
138 | instr d6,#$ffffff |
||
139 | instr d6,#$ffff |
||
140 | instr d6,#$ff |
||
141 | instr d6,#$fffffffe |
||
142 | instr d6,#$30405060 |
||
143 | instr d6,( -x) |
||
144 | instr d6,(-y ) |
||
145 | instr d6,(-s) |
||
146 | instr d6,(x-) |
||
147 | instr d6,(y-) |
||
148 | instr d6,(+x) |
||
149 | instr d6,(+y) |
||
150 | instr d6,(x+) |
||
151 | instr d6,(y+) |
||
152 | instr d6,(s+) |
||
153 | instr d6,(2 ,x) |
||
154 | instr d6,(y) |
||
155 | instr d6,(s,7) |
||
156 | instr d6,(20,x) |
||
157 | instr d6,(-100,y) |
||
158 | instr d6,(255,s) |
||
159 | instr d6,(*+2,pc) |
||
160 | instr d6,(10000,x) |
||
161 | instr d6,(-10000,y) |
||
162 | instr d6,(100000,s) |
||
163 | instr d6,(*+100000,pc) |
||
164 | instr d6,(d0 ,x) |
||
165 | instr d6,(d1, y) |
||
166 | instr d6,(s,d6) |
||
167 | instr d6,(d6) |
||
168 | instr d6,(100,d7) |
||
169 | instr d6,(100000,d0) |
||
170 | instr d6,(1000000,d6) |
||
171 | instr d6,(1000000,d7) |
||
172 | instr d6,(1000000,d0) |
||
173 | instr d6,[d0,x] |
||
174 | instr d6,[y,d1] |
||
175 | instr d6,[x] |
||
176 | instr d6,[y,2] |
||
177 | instr d6,[-25,s] |
||
178 | instr d6,[*-10,pc] |
||
179 | instr d6,[10000,x] |
||
180 | instr d6,[y,10000] |
||
181 | instr d6,[10000,s] |
||
182 | instr d6,[*+10000,pc] |
||
183 | instr d6,[0] |
||
184 | instr d6,[10000000] |
||
185 | instr d6,$123 |
||
186 | instr d6,$1234 |
||
187 | instr d6,$12345 |
||
188 | instr d6,$22345 |
||
189 | instr d6,$32345 |
||
190 | instr d6,$123456 |
||
191 | endm |
||
192 | |||
193 | ; additional forms of SUB |
||
194 | |||
195 | sub d6,x,y |
||
196 | sub d6,y,x |
||
197 | ;sub d5,y,x |
||
198 | ;sub d6,y,y |
||
199 | |||
200 | ; additional forms of CMP |
||
201 | |||
202 | cmp x,y |
||
203 | irp reg,x,y,s |
||
204 | cmp reg,d3 |
||
205 | cmp reg,#-1 |
||
206 | cmp reg,#1 |
||
207 | cmp reg,#2 |
||
208 | cmp reg,#3 |
||
209 | cmp reg,#4 |
||
210 | cmp reg,#5 |
||
211 | cmp reg,#6 |
||
212 | cmp reg,#7 |
||
213 | cmp reg,#8 |
||
214 | cmp reg,#9 |
||
215 | cmp reg,#10 |
||
216 | cmp reg,#11 |
||
217 | cmp reg,#12 |
||
218 | cmp reg,#13 |
||
219 | cmp reg,#14 |
||
220 | cmp reg,#15 |
||
221 | cmp reg,#$ffffff |
||
222 | cmp reg,#$ffff |
||
223 | cmp reg,#$ff |
||
224 | cmp reg,#$fffffe |
||
225 | cmp reg,#$304050 |
||
226 | cmp reg,(-x) |
||
227 | cmp reg,(-y) |
||
228 | cmp reg,(-s) |
||
229 | cmp reg,(x-) |
||
230 | cmp reg,(y-) |
||
231 | cmp reg,(+x) |
||
232 | cmp reg,(+y) |
||
233 | cmp reg,(x+) |
||
234 | cmp reg,(y+) |
||
235 | cmp reg,(s+) |
||
236 | cmp reg,(2,x) |
||
237 | cmp reg,(y) |
||
238 | cmp reg,(s,7) |
||
239 | cmp reg,(20,x) |
||
240 | cmp reg,(-100,y) |
||
241 | cmp reg,(255,s) |
||
242 | cmp reg,(*+2,pc) |
||
243 | cmp reg,(10000,x) |
||
244 | cmp reg,(-10000,y) |
||
245 | cmp reg,(100000,s) |
||
246 | cmp reg,(*+100000,pc) |
||
247 | cmp reg,(d0,x) |
||
248 | cmp reg,(d1,y) |
||
249 | cmp reg,(s,d6) |
||
250 | cmp reg,(x) |
||
251 | cmp reg,(100,d7) |
||
252 | cmp reg,(100000,d0) |
||
253 | cmp reg,(1000000,x) |
||
254 | cmp reg,(1000000,d7) |
||
255 | cmp reg,(1000000,d0) |
||
256 | cmp reg,[d0,x] |
||
257 | cmp reg,[y,d1] |
||
258 | cmp reg,[x] |
||
259 | cmp reg,[y,2] |
||
260 | cmp reg,[-25,s] |
||
261 | cmp reg,[*-10,pc] |
||
262 | cmp reg,[10000,x] |
||
263 | cmp reg,[y,10000] |
||
264 | cmp reg,[10000,s] |
||
265 | cmp reg,[*+10000,pc] |
||
266 | cmp reg,[0] |
||
267 | cmp reg,[10000000] |
||
268 | cmp reg,$123 |
||
269 | cmp reg,$1234 |
||
270 | cmp reg,$12345 |
||
271 | cmp reg,$22345 |
||
272 | cmp reg,$32345 |
||
273 | cmp reg,$123456 |
||
274 | endm |
||
275 | |||
276 | andcc #$55 |
||
277 | orcc #$aa |
||
278 | |||
279 | irp instr,asl,asr,lsl,lsr |
||
280 | instr d6,d5,d0 ; REG-REG |
||
281 | instr d6,d5,#5 ; REG-IMM (general) |
||
282 | instr d6,d5,#1 ; REG-IMM (n=1..2) |
||
283 | instr d6,d5,#2 ; REG-IMM (n=1..2) |
||
284 | instr d6,d5,(-x) ; REG-OPR1/2/3 (ASL) OPR/1/2/3-OPR/1/2/3 (others) |
||
285 | instr d6,d5,$123456 ; REG-OPR1/2/3 (ASL) OPR/1/2/3-OPR/1/2/3 (others) |
||
286 | instr.b d6,(x),#2 ; OPR/1/2/3-IMM |
||
287 | instr.w d6,(x),#2 ; OPR/1/2/3-IMM |
||
288 | instr.p d6,(x),#2 ; OPR/1/2/3-IMM |
||
289 | instr.l d6,(x),#2 ; OPR/1/2/3-IMM |
||
290 | instr.b d6,$1234,#5 ; OPR/1/2/3-IMM |
||
291 | instr.w d6,$1234,#6 ; OPR/1/2/3-IMM |
||
292 | instr.p d6,$1234,#7 ; OPR/1/2/3-IMM |
||
293 | instr.l d6,$1234,#8 ; OPR/1/2/3-IMM |
||
294 | instr.b d6,(100,x),(200,y) ; OPR/1/2/3-OPR/1/2/3 |
||
295 | instr.w d6,(1000,x),(2000,y) ; OPR/1/2/3-OPR/1/2/3 |
||
296 | instr.p d6,(10000,x),(20000,y) ; OPR/1/2/3-OPR/1/2/3 |
||
297 | instr.l d6,(100000,x),(200000,y) ; OPR/1/2/3-OPR/1/2/3 |
||
298 | instr d6,d6,d0 ; REG-REG |
||
299 | instr d6,d0 |
||
300 | instr d6,d6,#5 ; REG-IMM (general) |
||
301 | instr d6,#5 |
||
302 | instr d6,d6,#1 ; REG-IMM (n=1..2) |
||
303 | instr d6,#1 |
||
304 | instr d6,d6,#2 ; REG-IMM (n=1..2) |
||
305 | instr d6,#2 |
||
306 | instr d6,d6,(-x) ; REG-OPR1/2/3 (ASL) OPR/1/2/3-OPR/1/2/3 (others) |
||
307 | instr d6,(-x) |
||
308 | instr d6,d6,$123456 ; REG-OPR1/2/3 (ASL) OPR/1/2/3-OPR/1/2/3 (others) |
||
309 | instr d6,$123456 |
||
310 | instr.b (x),#1 ; OPR/1/2/3-IMM (n=1..2) |
||
311 | instr.w (y),#2 |
||
312 | instr.p (x+),#1 |
||
313 | instr.l (y+),#2 |
||
314 | endm |
||
315 | |||
316 | irp instr,bclr,bset,btgl |
||
317 | instr d1,#7 ; REG-IMM |
||
318 | instr d5,#15 |
||
319 | instr d7,#31 |
||
320 | instr d1,d0 ; REG-REG |
||
321 | instr d5,d4 |
||
322 | instr d7,d6 |
||
323 | instr.b (100,x),#7 ; OPR/1/2/3-IMM |
||
324 | instr.w (100,x),#15 |
||
325 | instr.l (100,x),#31 |
||
326 | instr.b $123456,d0 ; OPR/1/2/3-REG |
||
327 | instr.w $123456,d4 |
||
328 | instr.l $123456,d6 |
||
329 | endm |
||
330 | |||
331 | irp instr,bfext,bfins |
||
332 | instr d3,d4,d5 ; REG-REG-REG |
||
333 | instr d3,d4,#10:3 ; REG-REG-IMM |
||
334 | instr.b d6,(10,x),d5 ; REG-OPR1/2/3-REG |
||
335 | instr.w d6,(10,x),d5 |
||
336 | instr.p d6,(10,x),d5 |
||
337 | instr.l d6,(10,x),d5 |
||
338 | instr.b d6,(10,s),#10:3 ; REG-OPR1/2/3-IMM |
||
339 | instr.w d6,(10,s),#10:3 |
||
340 | instr.p d6,(10,s),#10:3 |
||
341 | instr.l d6,(10,s),#10:3 |
||
342 | instr.b (10,x),d6,d5 ; OPR1/2/3-REG-REG |
||
343 | instr.w (10,x),d6,d5 |
||
344 | instr.p (10,x),d6,d5 |
||
345 | instr.l (10,x),d6,d5 |
||
346 | instr.b (10,s),d6,#10:3 ; OPR1/2/3-REG-IMM |
||
347 | instr.w (10,s),d6,#10:3 |
||
348 | instr.p (10,s),d6,#10:3 |
||
349 | instr.l (10,s),d6,#10:3 |
||
350 | endm |
||
351 | |||
352 | irp instr,brclr,brset |
||
353 | instr d1,#7,*+20 ; REG-IMM-REL |
||
354 | instr d5,#15,*-30 |
||
355 | instr d7,#31,*+40 |
||
356 | instr d1,d0,*-50 ; REG-REG-REL |
||
357 | instr d5,d4,*+60 |
||
358 | instr d7,d6,*+70 |
||
359 | instr.b (100,x),#7,*-80 ; OPR/1/2/3-IMM-REL |
||
360 | instr.w (100,x),#15,*+90 |
||
361 | instr.l (100,x),#31,*-100 |
||
362 | instr.b $123456,d0,*+110 ; OPR/1/2/3-REG-REL |
||
363 | instr.w $123456,d4,*-120 |
||
364 | instr.l $123456,d6,*+130 |
||
365 | endm |
||
366 | |||
367 | clb d7,d0 |
||
368 | |||
369 | clr d1 |
||
370 | clr.b d1 |
||
371 | clr d3 |
||
372 | clr.w d3 |
||
373 | clr d6 |
||
374 | clr.l d6 |
||
375 | clr x |
||
376 | clr.p x |
||
377 | clr y |
||
378 | clr.p y |
||
379 | clr.b (10,x) |
||
380 | clr.w $123 |
||
381 | clr.p (-y) |
||
382 | clr.l ($123456,x) |
||
383 | |||
384 | irp instr,com,neg |
||
385 | instr d1 |
||
386 | instr.b d1 |
||
387 | instr d3 |
||
388 | instr.w d3 |
||
389 | instr d6 |
||
390 | instr.l d6 |
||
391 | instr.b (10,x) |
||
392 | instr.w $123 |
||
393 | instr.l ($123456,x) |
||
394 | endm |
||
395 | |||
396 | irp instr,dbne,dbeq,dbpl,dbmi,dbgt,dble |
||
397 | instr d1,*+10 |
||
398 | instr.b d1,*+10 |
||
399 | instr d3,*-20 |
||
400 | instr.w d3,*-20 |
||
401 | instr d6,*+30 |
||
402 | instr.l d6,*+30 |
||
403 | instr x,*-40 |
||
404 | instr.p x,*-40 |
||
405 | instr y,*+50 |
||
406 | instr.p y,*+50 |
||
407 | instr.b (10,x),*-60 |
||
408 | instr.w $123,*+70 |
||
409 | instr.p (-y),*-80 |
||
410 | instr.l ($123456,x),*+90 |
||
411 | endm |
||
412 | |||
413 | irp instr,dec,inc |
||
414 | instr d1 |
||
415 | instr.b d1 |
||
416 | instr d3 |
||
417 | instr.w d3 |
||
418 | instr d6 |
||
419 | instr.l d6 |
||
420 | instr.b (10,x) |
||
421 | instr.w $123 |
||
422 | instr.l ($123456,x) |
||
423 | endm |
||
424 | |||
425 | irp instr,divs,divu,mods,modu,macs,macu,muls,mulu,qmuls,qmulu |
||
426 | instr d7,d6,d3 |
||
427 | instr.b d7,d6,#30 |
||
428 | instr.w d7,d6,#30 |
||
429 | instr.l d7,d6,#30 |
||
430 | instr.b d7,d6,(16,s) |
||
431 | instr.w d7,d6,(16,s) |
||
432 | instr.l d7,d6,(16,s) |
||
433 | instr.bb d7,(100,x),(16,s) |
||
434 | instr.bw d7,(100,x),(16,s) |
||
435 | instr.bl d7,(100,x),(16,s) |
||
436 | instr.wb d7,(100,x),(16,s) |
||
437 | instr.ww d7,(100,x),(16,s) |
||
438 | instr.wl d7,(100,x),(16,s) |
||
439 | instr.lb d7,(100,x),(16,s) |
||
440 | instr.lw d7,(100,x),(16,s) |
||
441 | instr.ll d7,(100,x),(16,s) |
||
442 | endm |
||
443 | |||
444 | irp src,d2,d3,d4,d5,d0,d1,d6,d7,x,y,s,cch,ccl,ccw |
||
445 | irp dest,d2,d3,d4,d5,d0,d1,d6,d7,x,y,s,cch,ccl,ccw |
||
446 | exg src,dest |
||
447 | tfr src,dest |
||
448 | endm |
||
449 | endm |
||
450 | |||
451 | irp instr,jmp,jsr |
||
452 | instr $12 |
||
453 | instr $123 |
||
454 | instr $1234 |
||
455 | instr $12345 |
||
456 | instr $123456 |
||
457 | instr (100,x) |
||
458 | endm |
||
459 | |||
460 | ld d1,#3 ; REG-IMM and REG-OPR1/2/3 equally good |
||
461 | ld.b d1,#3 |
||
462 | ld d1,#$23 ; REG-IMM |
||
463 | ld.b d1,#$23 |
||
464 | ld d3,#$1234 |
||
465 | ld.w d3,#$1234 |
||
466 | ld d6,#$12345678 |
||
467 | ld.l d6,#$12345678 |
||
468 | ld d1,$123456 ; REG-EXT3 |
||
469 | ld.b d1,$123456 |
||
470 | ld d3,$123456 |
||
471 | ld.w d3,$123456 |
||
472 | ld d6,$123456 |
||
473 | ld.l d6,$123456 |
||
474 | ld d1,(100,x) ; REG-OPR1/2/3 |
||
475 | ld.b d1,(100,x) |
||
476 | ld d3,(100,y) |
||
477 | ld.w d3,(100,y) |
||
478 | ld d6,(100,s) |
||
479 | ld.l d6,(100,s) |
||
480 | ld x,#$12345 ; XREG-IMM2 |
||
481 | ld.p x,#$12345 |
||
482 | ld y,#$12345 |
||
483 | ld.p y,#$12345 |
||
484 | ld x,#$123456 ; XREG-IMM3 |
||
485 | ld.p x,#$123456 |
||
486 | ld y,#$123456 |
||
487 | ld.p y,#$123456 |
||
488 | ld x,$123456 ; XREG-EXT3 |
||
489 | ld y,$123456 |
||
490 | ld x,#3 ; XREG-OPR1/2/3 |
||
491 | ld.p x,#3 |
||
492 | ld y,#3 |
||
493 | ld.p y,#3 |
||
494 | ld x,(100,y) |
||
495 | ld.p x,(100,y) |
||
496 | ld y,(100,x) |
||
497 | ld.p y,(100,x) |
||
498 | ld s,#$123456 ; S-IMM3 |
||
499 | ld.p s,#$123456 |
||
500 | ld s,#3 ; S-OPR1/2/3 |
||
501 | ld.p s,#3 |
||
502 | ld s,(100,x) |
||
503 | ld.p s,(100,x) |
||
504 | |||
505 | lea d6,(x,100) |
||
506 | lea d7,$123456 |
||
507 | lea s,(100,s) |
||
508 | lea s,(-100,s) |
||
509 | lea x,(100,x) |
||
510 | lea x,(-100,x) |
||
511 | lea y,(100,y) |
||
512 | lea y,(-100,y) |
||
513 | lea s,(*+100,pc) |
||
514 | lea s,(*-100,pc) |
||
515 | lea x,(100,y) |
||
516 | lea x,(-100,y) |
||
517 | lea y,(100,x) |
||
518 | lea y,(-100,x) |
||
519 | |||
520 | irp instr,mins,minu,maxs,maxu |
||
521 | instr d1,(x) |
||
522 | instr.b d1,(x) |
||
523 | instr d4,(100,x) |
||
524 | instr.w d4,(100,x) |
||
525 | instr d6,$123456 |
||
526 | instr.l d6,$123456 |
||
527 | endm |
||
528 | |||
529 | mov d0,d1 ; REG-REG (may also use TFR) |
||
530 | mov.b d0,d1 |
||
531 | mov d4,d5 |
||
532 | mov.w d4,d5 |
||
533 | mov d6,d7 |
||
534 | mov.l d6,d7 |
||
535 | mov #$aa,d0 ; IMM-REG (no simm4 possible) |
||
536 | mov.b #$aa,d0 |
||
537 | mov #$55aa,d5 |
||
538 | mov.w #$55aa,d5 |
||
539 | mov #$113355aa,d6 |
||
540 | mov.l #$113355aa,d6 |
||
541 | mov.b #$aa,(100,x) ; IMM-OPR1/2/3 (no simm4 possible) |
||
542 | mov.w #$55aa,(100,x) |
||
543 | mov.p #$3355aa,(100,x) |
||
544 | mov.l #$113355aa,(100,x) |
||
545 | mov #$ff,d0 ; IMM-OPR1/2/3 (simm4 possible) |
||
546 | mov.b #$ff,d0 |
||
547 | mov #$ffff,d5 |
||
548 | mov.w #$ffff,d5 |
||
549 | mov #$ffffffff,d6 |
||
550 | mov.l #$ffffffff,d6 |
||
551 | mov.b #$ff,(100,x) ; IMM-OPR1/2/3 (simm4 possible) |
||
552 | mov.w #$ffff,(100,x) |
||
553 | mov.p #$ffffff,(100,x) |
||
554 | mov.l #$ffffffff,(100,x) |
||
555 | mov.b (100,y),(100,x) ; OPR1/2/3-OPR1/2/3 |
||
556 | mov.w (100,y),(100,x) |
||
557 | mov.p (100,y),(100,x) |
||
558 | mov.b (100,y),(100,x) |
||
559 | |||
560 | irp instr,psh,pul |
||
561 | instr all |
||
562 | instr cch,ccl,d0,d1,d2,d3,d4,d5,d6,d7,x,y |
||
563 | instr all16b |
||
564 | instr d2,d3,d4,d5 |
||
565 | instr cch |
||
566 | instr ccl |
||
567 | instr d0 |
||
568 | instr d1 |
||
569 | instr d2 |
||
570 | instr d3 |
||
571 | instr d4 |
||
572 | instr d5 |
||
573 | instr d6 |
||
574 | instr d7 |
||
575 | instr x |
||
576 | instr y |
||
577 | instr cch,ccl,d0,d1,d2,d3 |
||
578 | instr d4,d5,d6,d7,x,y |
||
579 | ;instr s ; not possible |
||
580 | ;instr d3,d4 ; needs two separate instructions |
||
581 | endm |
||
582 | |||
583 | irp instr,rol,ror |
||
584 | instr d1 |
||
585 | instr.b d1 |
||
586 | instr d3 |
||
587 | instr.w d3 |
||
588 | instr d6 |
||
589 | instr.l d6 |
||
590 | instr.b (200,x) |
||
591 | instr.w (200,x) |
||
592 | instr.p (200,x) |
||
593 | instr.l (200,x) |
||
594 | instr.b $123456 |
||
595 | instr.w $123456 |
||
596 | instr.p $123456 |
||
597 | instr.l $123456 |
||
598 | endm |
||
599 | |||
600 | sat d1 |
||
601 | sat d4 |
||
602 | sat d7 |
||
603 | |||
604 | irp instr,sex,zex |
||
605 | instr d0,d3 |
||
606 | instr d0,y |
||
607 | instr d0,d6 |
||
608 | instr d3,y |
||
609 | instr d3,d6 |
||
610 | instr y,d6 |
||
611 | endm |
||
612 | |||
613 | st d1,$123456 ; REG-EXT3 |
||
614 | st.b d1,$123456 |
||
615 | st d3,$123456 |
||
616 | st.w d3,$123456 |
||
617 | st d6,$123456 |
||
618 | st.l d6,$123456 |
||
619 | st d1,(100,x) ; REG-OPR1/2/3 |
||
620 | st.b d1,(100,x) |
||
621 | st d3,(100,y) |
||
622 | st.w d3,(100,y) |
||
623 | st d6,(100,s) |
||
624 | st.l d6,(100,s) |
||
625 | st x,$123456 ; XREG-EXT3 |
||
626 | st.p y,$123456 |
||
627 | st x,(100,y) |
||
628 | st.p x,(100,y) |
||
629 | st y,(100,x) |
||
630 | st.p y,(100,x) |
||
631 | st s,(100,x) |
||
632 | st.p s,(100,x) |
||
633 | |||
634 | irp instr,tbne,tbeq,tbpl,tbmi,tbgt,tble |
||
635 | instr d1,*+20 |
||
636 | instr.b d1,*+20 |
||
637 | instr d1,*+200 |
||
638 | instr.b d1,*+200 |
||
639 | instr.bl d1,*+20 |
||
640 | instr d3,*+20 |
||
641 | instr.w d3,*+20 |
||
642 | instr d3,*+200 |
||
643 | instr.w d3,*+200 |
||
644 | instr.wl d3,*+20 |
||
645 | instr d6,*+20 |
||
646 | instr.l d6,*+20 |
||
647 | instr d6,*+200 |
||
648 | instr.l d6,*+200 |
||
649 | instr.ll d6,*+20 |
||
650 | instr y,*+20 |
||
651 | instr.p y,*+20 |
||
652 | instr y,*+200 |
||
653 | instr.p y,*+200 |
||
654 | instr.pl y,*+20 |
||
655 | instr.b (50,x),*+20 |
||
656 | instr.bl (50,x),*+20 |
||
657 | instr.w (50,x),*+20 |
||
658 | instr.wl (50,x),*+20 |
||
659 | instr.p (50,x),*+20 |
||
660 | instr.pl (50,x),*+20 |
||
661 | instr.l (50,x),*+20 |
||
662 | instr.ll (50,x),*+20 |
||
663 | endm |
||
664 | |||
665 | trap #$ff |
||
666 | spare |
||
667 | |||
668 | ; define some bit symbols and see if using them results in the same |
||
669 | ; code as writing register address & bit position explicitly |
||
670 | |||
671 | myreg equ $123 |
||
672 | mybit defbit.b myreg,5 |
||
673 | myfld defbitfield.b myreg,3:1 |
||
674 | bclr.b $123,#5 |
||
675 | bclr.b myreg,#5 |
||
676 | bclr mybit |
||
677 | bclr myb.bflg |
||
678 | bfins.b $123,d4,#3:1 |
||
679 | bfins.b myreg,d4,#3:1 |
||
680 | bfins myfld,d4 |
||
681 | bfins myb.bfld,d4 |
||
682 | bfext.b d4,$123,#3:1 |
||
683 | bfext.b d4,myreg,#3:1 |
||
684 | bfext d4,myfld |
||
685 | bfext d4,myb.bfld |
||
686 | |||
687 | mywreg equ $240 |
||
688 | mywbit defbit.w mywreg,12 |
||
689 | mywfld defbitfield.w mywreg,5:7 |
||
690 | bset.w $240,#12 |
||
691 | bset.w mywreg,#12 |
||
692 | bset mywbit |
||
693 | bset myw.wflg |
||
694 | bfins.w $240,d4,#5:7 |
||
695 | bfins.w mywreg,d4,#5:7 |
||
696 | bfins mywfld,d4 |
||
697 | bfins myw.wfld,d4 |
||
698 | bfext.w d4,$240,#5:7 |
||
699 | bfext.w d4,mywreg,#5:7 |
||
700 | bfext d4,mywfld |
||
701 | bfext d4,myw.wfld |
||
702 | |||
703 | mylreg equ $280 |
||
704 | mylbit defbit.l mylreg,25 |
||
705 | mylfld defbitfield.l mylreg,5:26 |
||
706 | bset.l $280,#25 |
||
707 | bset.l mylreg,#25 |
||
708 | bset mylbit |
||
709 | bset myl.lflg |
||
710 | bfins.l $280,d4,#5:26 |
||
711 | bfins.l mylreg,d4,#5:26 |
||
712 | bfins mylfld,d4 |
||
713 | bfins myl.lfld,d4 |
||
714 | bfext.l d4,$280,#5:26 |
||
715 | bfext.l d4,mylreg,#5:26 |
||
716 | bfext d4,mylfld |
||
717 | bfext d4,myl.lfld |
||
718 | |||
719 | mypreg equ $380 |
||
720 | mypfld defbitfield.p mypreg,5:18 |
||
721 | bfins.p $380,d4,#5:18 |
||
722 | bfins.p mypreg,d4,#5:18 |
||
723 | bfins mypfld,d4 |
||
724 | bfins myp.pfld,d4 |
||
725 | bfext.p d4,$380,#5:18 |
||
726 | bfext.p d4,mypreg,#5:18 |
||
727 | bfext d4,mypfld |
||
728 | bfext d4,myp.pfld |