OSDN Git Service

V300 beautified
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / TESTXASM.4TH
1
2 ; -----------------------------------------------------------------------
3 ; TESTXASM.4th
4 ; -----------------------------------------------------------------------
5
6 ECHO
7
8 PWR_STATE
9
10 ; --------------------------------------------------------------------------------
11 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : Adda|Cmpa|Mova|Suba (without extended word)
12 ; --------------------------------------------------------------------------------
13 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
14 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
15 ; --------------------------------------------------------------------------------
16
17 HERE
18 CODE TEST
19 MOVA @R10,R11
20 ENDCODE
21 HERE OVER - DUMP
22 ; you should see: 45 53 54 52>0B 0A<04 44 55 4D 50 4F
23 PWR_STATE
24
25 HERE
26 CODE TEST
27 MOVA @R11+,R10
28 ENDCODE
29 HERE OVER - DUMP
30 ; you should see: 45 53 54 52>1A 0B<04 44 55 4D 50 4F
31 PWR_STATE
32
33 HERE
34 CODE TEST
35 MOVA &$1.2345,R11
36 ENDCODE
37 HERE OVER - DUMP
38 ; you should see: 45 53 54 52>2B 01 45 23<04 44 55 4D
39 PWR_STATE
40
41 HERE
42 CODE TEST
43 MOVA $.1234(R10),R12
44 ENDCODE
45 HERE OVER - DUMP
46 ; you should see: 45 53 54 52>3C 0A 34 12<04 44 55 4D
47 PWR_STATE
48
49 HERE
50 CODE TEST
51 MOVA R11,&$1.2345
52 ENDCODE
53 HERE OVER - DUMP
54 ; you should see: 45 53 54 52>61 0B 45 23<04 44 55 4D
55 PWR_STATE
56
57 HERE
58 CODE TEST
59 MOVA R12,$.1234(R10)
60 ENDCODE
61 HERE OVER - DUMP
62 ; you should see: 45 53 54 52>7A 0C 34 12<04 44 55 4D
63 PWR_STATE
64
65 HERE
66 CODE TEST
67 MOVA #$0.1,R12
68 ENDCODE
69 HERE OVER - DUMP
70 ; you should see: 45 53 54 52>8C 00 01 00<04 44 55 4D
71 PWR_STATE
72
73 HERE
74 CODE TEST
75 CMPA #$1.2345,R12
76 ENDCODE
77 HERE OVER - DUMP
78 ; you should see: 45 53 54 52>9C 01 45 23<04 44 55 4D
79 PWR_STATE
80
81 HERE
82 CODE TEST
83 ADDA #$2.3456,R12
84 ENDCODE
85 HERE OVER - DUMP
86 ; you should see: 45 53 54 52>AC 02 56 34<04 44 55 4D
87 PWR_STATE
88
89 HERE
90 CODE TEST
91 SUBA #$3.4567,R12
92 ENDCODE
93 HERE OVER - DUMP
94 ; you should see: 45 53 54 52>BC 03 67 45<04 44 55 4D
95 PWR_STATE
96
97
98
99 HERE
100 CODE TEST
101 MOVA R10,R11
102 ENDCODE
103 HERE OVER - DUMP
104 ; you should see: 45 53 54 52>CB 0A<04 44 55 4D 50 4F
105 PWR_STATE
106
107 HERE
108 CODE TEST
109 CMPA R10,R11
110 ENDCODE
111 HERE OVER - DUMP
112 ; you should see: 45 53 54 52>DB 0A<04 44 55 4D 50 4F
113 PWR_STATE
114
115 HERE
116 CODE TEST
117 ADDA R10,R11
118 ENDCODE
119 HERE OVER - DUMP
120 ; you should see: 45 53 54 52>EB 0A<04 44 55 4D 50 4F
121 PWR_STATE
122
123 HERE
124 CODE TEST
125 SUBA R10,R11
126 ENDCODE
127 HERE OVER - DUMP
128 ; you should see: 45 53 54 52>FB 0A<04 44 55 4D 50 4F
129 PWR_STATE
130
131 ; --------------------------------------------------------------------------------
132 ; DTCforthMSP430FR5xxx ASSEMBLER: CALLA (without extended word)
133 ; --------------------------------------------------------------------------------
134 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
135 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
136 ; --------------------------------------------------------------------------------
137
138 HERE
139 CODE TEST
140 CALLA R10
141 ENDCODE
142 HERE OVER - DUMP
143 ; you should see: 45 53 54 52>4A 13<04 44 55 4D 50 4F
144 PWR_STATE
145
146 HERE
147 CODE TEST
148 CALLA $.3456(R10)
149 ENDCODE
150 HERE OVER - DUMP
151 ; you should see: 45 53 54 52>5A 13 56 34<04 44 55 4D
152 PWR_STATE
153
154 HERE
155 CODE TEST
156 CALLA @R10
157 ENDCODE
158 HERE OVER - DUMP
159 ; you should see: 45 53 54 52>6A 13<04 44 55 4D 50 4F
160 PWR_STATE
161
162 HERE
163 CODE TEST
164 CALLA @R10+
165 ENDCODE
166 HERE OVER - DUMP
167 ; you should see: 45 53 54 52>7A 13<04 44 55 4D 50 4F
168 PWR_STATE
169
170 HERE
171 CODE TEST
172 CALLA &$2.3456
173 ENDCODE
174 HERE OVER - DUMP
175 ; you should see: 45 53 54 52>82 13 56 34<04 44 55 4D
176 PWR_STATE
177
178 HERE
179 CODE TEST
180 CALLA #$5.6789
181 ENDCODE
182 HERE OVER - DUMP
183 ; you should see: 45 53 54 52>B5 13 89 67<04 44 55 4D
184 PWR_STATE
185
186 ; --------------------------------------------------------------------------------
187 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES V extended double operand
188 ; --------------------------------------------------------------------------------
189 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
190 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
191 ; --------------------------------------------------------------------------------
192
193 HERE
194 CODE TEST
195 MOV R12,R11
196 MOVX R12,R11
197 ENDCODE
198 HERE OVER - DUMP
199 ; you should see: 45 53 54 52>0B 4C 40 18 0B 4C<04 44
200 PWR_STATE
201
202 HERE
203 CODE TEST
204 ADD R11,R11
205 ADDX.A R11,R11
206 ENDCODE
207 HERE OVER - DUMP
208 ; you should see: 45 53 54 52>0B 5B 00 18 4B 5B<04 44
209 PWR_STATE
210
211 HERE
212 CODE TEST
213 ADD R11,R11
214 RPT R9
215 ADDX.A R11,R11
216 ENDCODE
217 HERE OVER - DUMP
218 ; you should see: 45 53 54 52>0B 5B 89 18 4B 5B<04 44
219 PWR_STATE
220
221 HERE
222 CODE TEST
223 ADD R11,R11
224 RPT #8
225 ADDX.A R11,R11
226 ENDCODE
227 HERE OVER - DUMP
228 ; you should see: 45 53 54 52>0B 5B 07 18 4B 5B<04 44
229 PWR_STATE
230
231 HERE
232 CODE TEST
233 ADDC #$9876,R11
234 ADDCX.A #$5.9876,R11
235 ENDCODE
236 HERE OVER - DUMP
237 ; you should see: 45 53 54 52>3B 60 76 98 80 1A 7B 60
238 ;     76 98<04 44 55 4D
239 PWR_STATE
240
241 HERE
242 CODE TEST
243 ADDC &$9876,R11
244 ADDCX.A &$5.9876,R11
245 ENDCODE
246 HERE OVER - DUMP
247 ; you should see: 45 53 54 52>1B 62 76 98 80 1A 5B 62
248 ;     76 98<04 44 55 4D
249 PWR_STATE
250
251 HERE
252 CODE TEST
253 XOR.B $5432(R12),R11
254 XORX.B $6.5432(R12),R11
255 ENDCODE
256 HERE OVER - DUMP
257 ; you should see: 45 53 54 52>5B EC 32 54 46 18 5B EC
258 ;     32 54<04 44 55 4D
259 PWR_STATE
260
261 HERE
262 CODE TEST
263 SUBC R11,$5432(R12)
264 SUBCX.A R11,$6.5432(R12)
265 ENDCODE
266 HERE OVER - DUMP
267 ; you should see: 45 53 54 52>8C 7B 32 54 06 18 CC 7B
268 ;     32 54<04 44 55 4D
269 PWR_STATE
270
271 HERE
272 CODE TEST
273 XOR.B R11,$5432(R12)
274 XORX.B R11,$6.5432(R12)
275 ENDCODE
276 HERE OVER - DUMP
277 ; you should see: 45 53 54 52>CC EB 32 54 46 18 CC EB
278 ;     32 54<04 44 55 4D
279 PWR_STATE
280
281 ; --------------------------------------------------------------------------------
282 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES VI extended single operand (take count of RPT)
283 ; --------------------------------------------------------------------------------
284 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
285 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
286 ; --------------------------------------------------------------------------------
287
288 HERE
289 CODE TEST
290 RRA R9
291 RRAX R9
292 ENDCODE
293 HERE OVER - DUMP
294 ; you should see: 45 53 54 52>09 11 40 18 09 11<04 44
295 PWR_STATE
296
297 HERE
298 CODE TEST
299 RRC @R9
300 RRCX.A @R9
301 ENDCODE
302 HERE OVER - DUMP
303 ; you should see: 45 53 54 52>29 10 00 18 69 10<04 44
304 PWR_STATE
305
306 HERE
307 CODE TEST
308 RRC @R12
309 RRCX.A @R12
310 ENDCODE
311 HERE OVER - DUMP
312 ; you should see: 45 53 54 52>2C 10 00 18 6C 10<04 44
313 PWR_STATE
314
315 HERE
316 CODE TEST
317 RRC @R9+
318 RRUX.A @R9+
319 ENDCODE
320 HERE OVER - DUMP
321 ; you should see: 45 53 54 52>39 10 00 19 79 10<04 44
322 PWR_STATE
323
324 HERE
325 CODE TEST
326 RRC R11
327 RPT #9
328 RRUX.A R11
329 ENDCODE
330 HERE OVER - DUMP
331 ; you should see: 45 53 54 52>0B 10 08 19 4B 10<04 44
332 PWR_STATE
333
334 HERE
335 CODE TEST
336 RRC R11
337 RPT R9
338 RRUX.A R11
339 ENDCODE
340 HERE OVER - DUMP
341 ; you should see: 45 53 54 52>0B 10 89 19 4B 10<04 44
342 PWR_STATE
343
344 HERE
345 CODE TEST
346 PUSH #$2345
347 PUSHX #$0.2345
348 ENDCODE
349 HERE OVER - DUMP
350 ; you should see: 45 53 54 52>30 12 45 23 40 18 30 12
351 ;     45 23<04 44 55 4D
352 PWR_STATE
353
354 HERE
355 CODE TEST
356 PUSH &$5678
357 PUSHX.A &$4.5678
358 ENDCODE
359 HERE OVER - DUMP
360 ; you should see: 45 53 54 52>12 12 78 56 00 1A 52 12
361 ;     78 56<04 44 55 4D
362 PWR_STATE
363
364 HERE
365 CODE TEST
366 PUSH.B &$33
367 PUSHX.B &$.33
368 ENDCODE
369 HERE OVER - DUMP
370 ; you should see: 45 53 54 52>52 12 33 00 40 18 52 12
371 ;     33 00<04 44 55 4D
372 PWR_STATE
373
374 HERE
375 CODE TEST
376 PUSH.B $3344(R11)
377 PUSHX.B $.3344(R11)
378 ENDCODE
379 HERE OVER - DUMP
380 ; you should see: 45 53 54 52>5B 12 44 33 40 18 5B 12
381 ;     44 33<04 44 55 4D
382 PWR_STATE
383
384
385
386 : %.
387 BASE @ %10 BASE ! SWAP 8 EMIT . BASE !
388 ;
389
390 : %U.
391 BASE @ %10 BASE ! SWAP 8 EMIT U. BASE ! ;
392
393 PWR_HERE
394
395
396 ; ================
397 ; RRUX test
398 ; ================
399
400
401 CODE RRUX_T
402 MOVX #$.F0F0,R8
403 RRUX R8
404 SUB #2,R15
405 MOV R14,0(R15)
406 MOV R8,R14
407 JMP %.
408 ENDCODE
409
410 RRUX_T ; you should see %111100001111000 --> %
411
412 PWR_STATE
413
414 ; ================
415 ; RRUX repeat test
416 ; ================
417
418
419 CODE RRUX_T
420 MOV #$F0F0,R8
421 RPT #0
422 RRUX R8
423 SUB #2,R15
424 MOV R14,0(R15)
425 MOV R8,R14
426 JMP %.
427 ENDCODE
428
429 RRUX_T ; you should see %111100001111000 --> %
430
431 PWR_STATE
432
433 CODE RRUX_T
434 MOV #$F0F0,R8
435 RPT #3
436 RRUX R8
437 SUB #2,R15
438 MOV R14,0(R15)
439 MOV R8,R14
440 JMP %.
441 ENDCODE
442
443 RRUX_T ; you should see %111100001111 --> %
444
445 PWR_STATE
446
447 CODE RRUX_T
448 MOV #$F0F0,R8
449 RPT #7
450 RRUX R8
451 SUB #2,R15
452 MOV R14,0(R15)
453 MOV R8,R14
454 JMP %.
455 ENDCODE
456
457 RRUX_T ; you should see %11110000 --> %
458
459 PWR_STATE
460
461
462 ; ================
463 ; RRCX test
464 ; ================
465
466
467 CODE RRCX_T
468 MOV #$8000,R8
469 BIC #1,R2
470 RRCX R8
471 SUB #2,R15
472 MOV R14,0(R15)
473 MOV R8,R14
474 JMP %U.
475 ENDCODE
476
477 RRCX_T ; you should see %100000000000000 --> %
478
479 PWR_STATE
480
481 ; ================
482 ; RRCX repeat test
483 ; ================
484
485 CODE RRCX_T
486 MOV #$8000,R8
487 BIC #1,R2
488 RPT #0
489 RRCX R8
490 SUB #2,R15
491 MOV R14,0(R15)
492 MOV R8,R14
493 JMP %U.
494 ENDCODE
495
496 RRCX_T ; you should see %100000000000000 --> %
497
498 PWR_STATE
499
500 CODE RRCX_T
501 MOV #$8000,R8
502 BIC #1,R2
503 RPT #7
504 RRCX R8
505 SUB #2,R15
506 MOV R14,0(R15)
507 MOV R8,R14
508 JMP %U.
509 ENDCODE
510
511 RRCX_T ; you should see %10000000 --> %
512
513 PWR_STATE
514
515 ; ================
516 ; RRAX test
517 ; ================
518
519
520 CODE RRAX_T
521 MOV #$8000,R8
522 RRAX R8
523 SUB #2,R15
524 MOV R14,0(R15)
525 MOV R8,R14
526 JMP %.
527 ENDCODE
528
529 RRAX_T ; you should see %-100000000000000 --> %
530
531 PWR_STATE
532
533 ; ================
534 ; RRAX repeat test
535 ; ================
536
537
538 CODE RRAX_T
539 MOV #$8000,R8
540 RPT #0
541 RRAX R8
542 SUB #2,R15
543 MOV R14,0(R15)
544 MOV R8,R14
545 JMP %.
546 ENDCODE
547
548 RRAX_T ; you should see %-100000000000000 --> %
549
550 PWR_STATE
551
552 CODE RRAX_T
553 MOV #$8000,R8
554 RPT #1
555 RRAX R8
556 SUB #2,R15
557 MOV R14,0(R15)
558 MOV R8,R14
559 JMP %.
560 ENDCODE
561
562 RRAX_T ; you should see %-10000000000000 --> %
563
564 PWR_STATE
565
566 CODE RRAX_T
567 MOV #$8000,R8
568 RPT #2
569 RRAX R8
570 SUB #2,R15
571 MOV R14,0(R15)
572 MOV R8,R14
573 JMP %.
574 ENDCODE
575
576 RRAX_T ; you should see %-1000000000000 --> %
577
578 PWR_STATE
579
580 CODE RRAX_T
581 MOV #$8000,R8
582 RPT #6
583 RRAX R8
584 SUB #2,R15
585 MOV R14,0(R15)
586 MOV R8,R14
587 JMP %.
588 ENDCODE
589
590 RRAX_T ; you should see %-100000000 --> %
591
592 PWR_STATE
593
594 ; ================
595 ; RLAX test
596 ; ================
597
598
599 CODE RLAX_T
600 MOV #-1,R8
601 ADDX R8,R8
602 SUB #2,R15
603 MOV R14,0(R15)
604 MOV R8,R14
605 MOV #.,R0
606 ENDCODE
607
608 RLAX_T ; you should see -2 -->
609
610 PWR_STATE
611
612 ; ================
613 ; RLAX repeat test
614 ; ================
615
616
617 CODE RLAX_T
618 MOV #-1,R8
619 RPT #0
620 ADDX R8,R8
621 SUB #2,R15
622 MOV R14,0(R15)
623 MOV R8,R14
624 MOV #.,R0
625 ENDCODE
626
627 RLAX_T ; you should see -2 -->
628
629 PWR_STATE
630
631 CODE RLAX_T
632 MOV #-1,R8
633 RPT #1
634 ADDX R8,R8
635 SUB #2,R15
636 MOV R14,0(R15)
637 MOV R8,R14
638 MOV #.,R0
639 ENDCODE
640
641 RLAX_T ; you should see -4 -->
642
643 PWR_STATE
644
645 CODE RLAX_T
646 MOV #-1,R8
647 RPT #2
648 ADDX R8,R8
649 SUB #2,R15
650 MOV R14,0(R15)
651 MOV R8,R14
652 MOV #.,R0
653 ENDCODE
654
655 RLAX_T ; you should see -8 -->
656
657 PWR_STATE
658
659 CODE RLAX_T
660 MOV #-1,R8
661 RPT #7
662 ADDX R8,R8
663 SUB #2,R15
664 MOV R14,0(R15)
665 MOV R8,R14
666 MOV #.,R0
667 ENDCODE
668
669 RLAX_T ; you should see -256 -->
670
671 PWR_STATE
672
673 ; ================
674 ; ADDX test
675 ; ================
676
677
678 CODE ADDX_T
679 MOV #0,R8
680 MOV #-1,R9
681 ADDX R9,R8
682 SUB #2,R15
683 MOV R14,0(R15)
684 MOV R8,R14
685 MOV #.,R0
686 ENDCODE
687
688 ADDX_T ; you should see -1 -->
689
690 PWR_STATE
691
692 ; ================
693 ; ADDX repeat test
694 ; ================
695
696
697 CODE ADDX_T
698 MOV #0,R8
699 MOV #-1,R9
700 RPT #0
701 ADDX R9,R8
702 SUB #2,R15
703 MOV R14,0(R15)
704 MOV R8,R14
705 MOV #.,R0
706 ENDCODE
707
708 ADDX_T ; you should see -1 -->
709
710 PWR_STATE
711
712 CODE ADDX_T
713 MOV #0,R8
714 MOV #-1,R9
715 RPT #1
716 ADDX R9,R8
717 SUB #2,R15
718 MOV R14,0(R15)
719 MOV R8,R14
720 MOV #.,R0
721 ENDCODE
722
723 ADDX_T ; you should see -2 -->
724
725 PWR_STATE
726
727 CODE ADDX_T
728 MOV #0,R8
729 MOV #-1,R9
730 RPT #7
731 ADDX R9,R8
732 SUB #2,R15
733 MOV R14,0(R15)
734 MOV R8,R14
735 MOV #.,R0
736 ENDCODE
737
738 ADDX_T ; you should see -8 -->
739
740 PWR_STATE
741
742
743 ; ================
744 ; SUBX test
745 ; ================
746
747
748 CODE SUBX_T
749 MOV #0,R8
750 MOV #-1,R9
751 SUBX R9,R8
752 SUB #2,R15
753 MOV R14,0(R15)
754 MOV R8,R14
755 MOV #.,R0
756 ENDCODE
757
758 SUBX_T ; you should see 1 -->
759
760 PWR_STATE
761
762 ; ================
763 ; SUBX repeat test
764 ; ================
765
766
767 CODE SUBX_T
768 MOV #0,R8
769 MOV #-1,R9
770 RPT #0
771 SUBX R9,R8
772 SUB #2,R15
773 MOV R14,0(R15)
774 MOV R8,R14
775 MOV #.,R0
776 ENDCODE
777
778 SUBX_T ; you should see 1 -->
779
780 PWR_STATE
781
782 CODE SUBX_T
783 MOV #0,R8
784 MOV #-1,R9
785 RPT #1
786 SUBX R9,R8
787 SUB #2,R15
788 MOV R14,0(R15)
789 MOV R8,R14
790 MOV #.,R0
791 ENDCODE
792
793 SUBX_T ; you should see 2 -->
794
795 PWR_STATE
796
797 CODE SUBX_T
798 MOV #0,R8
799 MOV #-1,R9
800 RPT #7
801 SUBX R9,R8
802 SUB #2,R15
803 MOV R14,0(R15)
804 MOV R8,R14
805 MOV #.,R0
806 ENDCODE
807
808 SUBX_T ; you should see 8 -->
809
810 PWR_STATE
811
812 CODE SUBX_T
813 MOV #15,R10
814 MOV #0,R8
815 MOV #-1,R9
816 RPT R10
817 SUBX R9,R8
818 SUB #2,R15
819 MOV R14,0(R15)
820 MOV R8,R14
821 MOV #.,R0
822 ENDCODE
823
824 SUBX_T ; you should see 16 -->
825
826 PWR_STATE
827
828 CODE SUBX_T
829 MOV #32,R10
830 MOV #0,R8
831 MOV #-1,R9
832 RPT R10
833 SUBX R9,R8
834 SUB #2,R15
835 MOV R14,0(R15)
836 MOV R8,R14
837 MOV #.,R0
838 ENDCODE
839
840 SUBX_T ; you should see 1 -->
841
842 PWR_STATE
843
844 CODE SUBX_T
845 MOV #33,R10
846 MOV #0,R8
847 MOV #-1,R9
848 RPT R10
849 SUBX R9,R8
850 SUB #2,R15
851 MOV R14,0(R15)
852 MOV R8,R14
853 MOV #.,R0
854 ENDCODE
855
856 SUBX_T ; you should see 2 -->
857
858