2 ; -----------------------------------------------------------------------
4 ; -----------------------------------------------------------------------
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 ; --------------------------------------------------------------------------------
22 ; you should see: 45 53 54 52>0B 0A<04 44 55 4D 50 4F
30 ; you should see: 45 53 54 52>1A 0B<04 44 55 4D 50 4F
38 ; you should see: 45 53 54 52>2B 01 45 23<04 44 55 4D
46 ; you should see: 45 53 54 52>3C 0A 34 12<04 44 55 4D
54 ; you should see: 45 53 54 52>61 0B 45 23<04 44 55 4D
62 ; you should see: 45 53 54 52>7A 0C 34 12<04 44 55 4D
70 ; you should see: 45 53 54 52>8C 00 01 00<04 44 55 4D
78 ; you should see: 45 53 54 52>9C 01 45 23<04 44 55 4D
86 ; you should see: 45 53 54 52>AC 02 56 34<04 44 55 4D
94 ; you should see: 45 53 54 52>BC 03 67 45<04 44 55 4D
104 ; you should see: 45 53 54 52>CB 0A<04 44 55 4D 50 4F
112 ; you should see: 45 53 54 52>DB 0A<04 44 55 4D 50 4F
120 ; you should see: 45 53 54 52>EB 0A<04 44 55 4D 50 4F
128 ; you should see: 45 53 54 52>FB 0A<04 44 55 4D 50 4F
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 ; --------------------------------------------------------------------------------
143 ; you should see: 45 53 54 52>4A 13<04 44 55 4D 50 4F
151 ; you should see: 45 53 54 52>5A 13 56 34<04 44 55 4D
159 ; you should see: 45 53 54 52>6A 13<04 44 55 4D 50 4F
167 ; you should see: 45 53 54 52>7A 13<04 44 55 4D 50 4F
175 ; you should see: 45 53 54 52>82 13 56 34<04 44 55 4D
183 ; you should see: 45 53 54 52>B5 13 89 67<04 44 55 4D
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 ; --------------------------------------------------------------------------------
199 ; you should see: 45 53 54 52>0B 4C 40 18 0B 4C<04 44
208 ; you should see: 45 53 54 52>0B 5B 00 18 4B 5B<04 44
218 ; you should see: 45 53 54 52>0B 5B 89 18 4B 5B<04 44
228 ; you should see: 45 53 54 52>0B 5B 07 18 4B 5B<04 44
237 ; you should see: 45 53 54 52>3B 60 76 98 80 1A 7B 60
247 ; you should see: 45 53 54 52>1B 62 76 98 80 1A 5B 62
254 XORX.B $6.5432(R12),R11
257 ; you should see: 45 53 54 52>5B EC 32 54 46 18 5B EC
264 SUBCX.A R11,$6.5432(R12)
267 ; you should see: 45 53 54 52>8C 7B 32 54 06 18 CC 7B
274 XORX.B R11,$6.5432(R12)
277 ; you should see: 45 53 54 52>CC EB 32 54 46 18 CC EB
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 ; --------------------------------------------------------------------------------
294 ; you should see: 45 53 54 52>09 11 40 18 09 11<04 44
303 ; you should see: 45 53 54 52>29 10 00 18 69 10<04 44
312 ; you should see: 45 53 54 52>2C 10 00 18 6C 10<04 44
321 ; you should see: 45 53 54 52>39 10 00 19 79 10<04 44
331 ; you should see: 45 53 54 52>0B 10 08 19 4B 10<04 44
341 ; you should see: 45 53 54 52>0B 10 89 19 4B 10<04 44
350 ; you should see: 45 53 54 52>30 12 45 23 40 18 30 12
360 ; you should see: 45 53 54 52>12 12 78 56 00 1A 52 12
370 ; you should see: 45 53 54 52>52 12 33 00 40 18 52 12
380 ; you should see: 45 53 54 52>5B 12 44 33 40 18 5B 12
387 BASE @ %10 BASE ! SWAP 8 EMIT . BASE !
391 BASE @ %10 BASE ! SWAP 8 EMIT U. BASE ! ;
410 RRUX_T ; you should see %111100001111000 --> %
429 RRUX_T ; you should see %111100001111000 --> %
443 RRUX_T ; you should see %111100001111 --> %
457 RRUX_T ; you should see %11110000 --> %
477 RRCX_T ; you should see %100000000000000 --> %
496 RRCX_T ; you should see %100000000000000 --> %
511 RRCX_T ; you should see %10000000 --> %
529 RRAX_T ; you should see %-100000000000000 --> %
548 RRAX_T ; you should see %-100000000000000 --> %
562 RRAX_T ; you should see %-10000000000000 --> %
576 RRAX_T ; you should see %-1000000000000 --> %
590 RRAX_T ; you should see %-100000000 --> %
608 RLAX_T ; you should see -2 -->
627 RLAX_T ; you should see -2 -->
641 RLAX_T ; you should see -4 -->
655 RLAX_T ; you should see -8 -->
669 RLAX_T ; you should see -256 -->
688 ADDX_T ; you should see -1 -->
708 ADDX_T ; you should see -1 -->
723 ADDX_T ; you should see -2 -->
738 ADDX_T ; you should see -8 -->
758 SUBX_T ; you should see 1 -->
778 SUBX_T ; you should see 1 -->
793 SUBX_T ; you should see 2 -->
808 SUBX_T ; you should see 8 -->
824 SUBX_T ; you should see 16 -->
840 SUBX_T ; you should see 1 -->
856 SUBX_T ; you should see 2 -->