Coverage for MC6809/components/MC6809data/MC6809_op_data.py: 100%
25 statements
« prev ^ index » next coverage.py v7.2.1, created at 2023-03-06 19:50 +0100
« prev ^ index » next coverage.py v7.2.1, created at 2023-03-06 19:50 +0100
1#!/usr/bin/env python
3"""
4 6809 instruction set data
5 ~~~~~~~~~~~~~~~~~~~~~~~~~
7 merged data from:
8 * http://www.maddes.net/m6809pm/sections.htm#sec4_4
9 * http://www.burgins.com/m6809.html
10 * http://www.maddes.net/m6809pm/appendix_a.htm#appA
12 Note:
13 * read_from_memory: it's "excluded" the address modes routines.
14 So if the address mode will fetch the memory to get the
15 effective address, but the content of the memory is not needed in
16 the instruction them self, the read_from_memory must be set to False.
18 Generated data is online here:
19 https://docs.google.com/spreadsheet/ccc?key=0Alhtym6D6yKjdFBtNmF0UVR5OW05S3psaURnUTNtSFE
21 :copyleft: 2013-2014 by Jens Diemer
22 :license: GNU GPL v3 or above, see LICENSE for more details.
23"""
26BYTE = "8"
27WORD = "16"
30# Address modes:
31DIRECT = "DIRECT"
32DIRECT_WORD = "DIRECT_WORD"
33EXTENDED = "EXTENDED"
34EXTENDED_WORD = "EXTENDED_WORD"
35IMMEDIATE = "IMMEDIATE"
36IMMEDIATE_WORD = "IMMEDIATE_WORD"
37INDEXED = "INDEXED"
38INDEXED_WORD = "INDEXED_WORD"
39INHERENT = "INHERENT"
40RELATIVE = "RELATIVE"
41RELATIVE_WORD = "RELATIVE_WORD"
44# Registers:
45REG_A = "A"
46REG_B = "B"
47REG_CC = "CC"
48REG_D = "D"
49REG_DP = "DP"
50REG_PC = "PC"
51REG_S = "S"
52REG_U = "U"
53REG_X = "X"
54REG_Y = "Y"
57OP_DATA = {'ABX': {'mnemonic': {'ABX': {'needs_ea': False,
58 'ops': {0x3a: {'addr_mode': INHERENT,
59 'bytes': 1,
60 'cycles': 3}},
61 'read_from_memory': None,
62 'register': None,
63 'write_to_memory': None}}},
64 'ADC': {'mnemonic': {'ADCA': {'needs_ea': False,
65 'ops': {0x89: {'addr_mode': IMMEDIATE,
66 'bytes': 2,
67 'cycles': 2},
68 0x99: {'addr_mode': DIRECT,
69 'bytes': 2,
70 'cycles': 4},
71 0xa9: {'addr_mode': INDEXED,
72 'bytes': 2,
73 'cycles': 4},
74 0xb9: {'addr_mode': EXTENDED,
75 'bytes': 3,
76 'cycles': 5}},
77 'read_from_memory': BYTE,
78 'register': REG_A,
79 'write_to_memory': None},
80 'ADCB': {'needs_ea': False,
81 'ops': {0xc9: {'addr_mode': IMMEDIATE,
82 'bytes': 2,
83 'cycles': 2},
84 0xd9: {'addr_mode': DIRECT,
85 'bytes': 2,
86 'cycles': 4},
87 0xe9: {'addr_mode': INDEXED,
88 'bytes': 2,
89 'cycles': 4},
90 0xf9: {'addr_mode': EXTENDED,
91 'bytes': 3,
92 'cycles': 5}},
93 'read_from_memory': BYTE,
94 'register': REG_B,
95 'write_to_memory': None}}},
96 'ADD': {'mnemonic': {'ADDA': {'needs_ea': False,
97 'ops': {0x8b: {'addr_mode': IMMEDIATE,
98 'bytes': 2,
99 'cycles': 2},
100 0x9b: {'addr_mode': DIRECT,
101 'bytes': 2,
102 'cycles': 4},
103 0xab: {'addr_mode': INDEXED,
104 'bytes': 2,
105 'cycles': 4},
106 0xbb: {'addr_mode': EXTENDED,
107 'bytes': 3,
108 'cycles': 5}},
109 'read_from_memory': BYTE,
110 'register': REG_A,
111 'write_to_memory': None},
112 'ADDB': {'needs_ea': False,
113 'ops': {0xcb: {'addr_mode': IMMEDIATE,
114 'bytes': 2,
115 'cycles': 2},
116 0xdb: {'addr_mode': DIRECT,
117 'bytes': 2,
118 'cycles': 4},
119 0xeb: {'addr_mode': INDEXED,
120 'bytes': 2,
121 'cycles': 4},
122 0xfb: {'addr_mode': EXTENDED,
123 'bytes': 3,
124 'cycles': 5}},
125 'read_from_memory': BYTE,
126 'register': REG_B,
127 'write_to_memory': None},
128 'ADDD': {'needs_ea': False,
129 'ops': {0xc3: {'addr_mode': IMMEDIATE_WORD,
130 'bytes': 3,
131 'cycles': 4},
132 0xd3: {'addr_mode': DIRECT_WORD,
133 'bytes': 2,
134 'cycles': 6},
135 0xe3: {'addr_mode': INDEXED_WORD,
136 'bytes': 2,
137 'cycles': 6},
138 0xf3: {'addr_mode': EXTENDED_WORD,
139 'bytes': 3,
140 'cycles': 7}},
141 'read_from_memory': WORD,
142 'register': REG_D,
143 'write_to_memory': None}}},
144 'AND': {'mnemonic': {'ANDA': {'needs_ea': False,
145 'ops': {0x84: {'addr_mode': IMMEDIATE,
146 'bytes': 2,
147 'cycles': 2},
148 0x94: {'addr_mode': DIRECT,
149 'bytes': 2,
150 'cycles': 4},
151 0xa4: {'addr_mode': INDEXED,
152 'bytes': 2,
153 'cycles': 4},
154 0xb4: {'addr_mode': EXTENDED,
155 'bytes': 3,
156 'cycles': 5}},
157 'read_from_memory': BYTE,
158 'register': REG_A,
159 'write_to_memory': None},
160 'ANDB': {'needs_ea': False,
161 'ops': {0xc4: {'addr_mode': IMMEDIATE,
162 'bytes': 2,
163 'cycles': 2},
164 0xd4: {'addr_mode': DIRECT,
165 'bytes': 2,
166 'cycles': 4},
167 0xe4: {'addr_mode': INDEXED,
168 'bytes': 2,
169 'cycles': 4},
170 0xf4: {'addr_mode': EXTENDED,
171 'bytes': 3,
172 'cycles': 5}},
173 'read_from_memory': BYTE,
174 'register': REG_B,
175 'write_to_memory': None},
176 'ANDCC': {'needs_ea': False,
177 'ops': {0x1c: {'addr_mode': IMMEDIATE,
178 'bytes': 2,
179 'cycles': 3}},
180 'read_from_memory': BYTE,
181 'register': REG_CC,
182 'write_to_memory': None}}},
183 'ASR': {'mnemonic': {'ASR': {'needs_ea': True,
184 'ops': {0x07: {'addr_mode': DIRECT,
185 'bytes': 2,
186 'cycles': 6},
187 0x67: {'addr_mode': INDEXED,
188 'bytes': 2,
189 'cycles': 6},
190 0x77: {'addr_mode': EXTENDED,
191 'bytes': 3,
192 'cycles': 7}},
193 'read_from_memory': BYTE,
194 'register': None,
195 'write_to_memory': BYTE},
196 'ASRA': {'needs_ea': False,
197 'ops': {0x47: {'addr_mode': INHERENT,
198 'bytes': 1,
199 'cycles': 2}},
200 'read_from_memory': None,
201 'register': REG_A,
202 'write_to_memory': None},
203 'ASRB': {'needs_ea': False,
204 'ops': {0x57: {'addr_mode': INHERENT,
205 'bytes': 1,
206 'cycles': 2}},
207 'read_from_memory': None,
208 'register': REG_B,
209 'write_to_memory': None}}},
210 'BEQ': {'mnemonic': {'BEQ': {'needs_ea': True,
211 'ops': {0x27: {'addr_mode': RELATIVE,
212 'bytes': 2,
213 'cycles': 3}},
214 'read_from_memory': None,
215 'register': None,
216 'write_to_memory': None},
217 'LBEQ': {'needs_ea': True,
218 'ops': {0x1027: {'addr_mode': RELATIVE_WORD,
219 'bytes': 4,
220 'cycles': 5}},
221 'read_from_memory': None,
222 'register': None,
223 'write_to_memory': None}}},
224 'BGE': {'mnemonic': {'BGE': {'needs_ea': True,
225 'ops': {0x2c: {'addr_mode': RELATIVE,
226 'bytes': 2,
227 'cycles': 3}},
228 'read_from_memory': None,
229 'register': None,
230 'write_to_memory': None},
231 'LBGE': {'needs_ea': True,
232 'ops': {0x102c: {'addr_mode': RELATIVE_WORD,
233 'bytes': 4,
234 'cycles': 5}},
235 'read_from_memory': None,
236 'register': None,
237 'write_to_memory': None}}},
238 'BGT': {'mnemonic': {'BGT': {'needs_ea': True,
239 'ops': {0x2e: {'addr_mode': RELATIVE,
240 'bytes': 2,
241 'cycles': 3}},
242 'read_from_memory': None,
243 'register': None,
244 'write_to_memory': None},
245 'LBGT': {'needs_ea': True,
246 'ops': {0x102e: {'addr_mode': RELATIVE_WORD,
247 'bytes': 4,
248 'cycles': 5}},
249 'read_from_memory': None,
250 'register': None,
251 'write_to_memory': None}}},
252 'BHI': {'mnemonic': {'BHI': {'needs_ea': True,
253 'ops': {0x22: {'addr_mode': RELATIVE,
254 'bytes': 2,
255 'cycles': 3}},
256 'read_from_memory': None,
257 'register': None,
258 'write_to_memory': None},
259 'LBHI': {'needs_ea': True,
260 'ops': {0x1022: {'addr_mode': RELATIVE_WORD,
261 'bytes': 4,
262 'cycles': 5}},
263 'read_from_memory': None,
264 'register': None,
265 'write_to_memory': None}}},
266 'BHS': {'mnemonic': {'BCC': {'needs_ea': True,
267 'ops': {0x24: {'addr_mode': RELATIVE,
268 'bytes': 2,
269 'cycles': 3}},
270 'read_from_memory': None,
271 'register': None,
272 'write_to_memory': None},
273 'LBCC': {'needs_ea': True,
274 'ops': {0x1024: {'addr_mode': RELATIVE_WORD,
275 'bytes': 4,
276 'cycles': 5}},
277 'read_from_memory': None,
278 'register': None,
279 'write_to_memory': None}}},
280 'BIT': {'mnemonic': {'BITA': {'needs_ea': False,
281 'ops': {0x85: {'addr_mode': IMMEDIATE,
282 'bytes': 2,
283 'cycles': 2},
284 0x95: {'addr_mode': DIRECT,
285 'bytes': 2,
286 'cycles': 4},
287 0xa5: {'addr_mode': INDEXED,
288 'bytes': 2,
289 'cycles': 4},
290 0xb5: {'addr_mode': EXTENDED,
291 'bytes': 3,
292 'cycles': 5}},
293 'read_from_memory': BYTE,
294 'register': REG_A,
295 'write_to_memory': None},
296 'BITB': {'needs_ea': False,
297 'ops': {0xc5: {'addr_mode': IMMEDIATE,
298 'bytes': 2,
299 'cycles': 2},
300 0xd5: {'addr_mode': DIRECT,
301 'bytes': 2,
302 'cycles': 4},
303 0xe5: {'addr_mode': INDEXED,
304 'bytes': 2,
305 'cycles': 4},
306 0xf5: {'addr_mode': EXTENDED,
307 'bytes': 3,
308 'cycles': 5}},
309 'read_from_memory': BYTE,
310 'register': REG_B,
311 'write_to_memory': None}}},
312 'BLE': {'mnemonic': {'BLE': {'needs_ea': True,
313 'ops': {0x2f: {'addr_mode': RELATIVE,
314 'bytes': 2,
315 'cycles': 3}},
316 'read_from_memory': None,
317 'register': None,
318 'write_to_memory': None},
319 'LBLE': {'needs_ea': True,
320 'ops': {0x102f: {'addr_mode': RELATIVE_WORD,
321 'bytes': 4,
322 'cycles': 5}},
323 'read_from_memory': None,
324 'register': None,
325 'write_to_memory': None}}},
326 'BLO': {'mnemonic': {'BLO': {'needs_ea': True,
327 'ops': {0x25: {'addr_mode': RELATIVE,
328 'bytes': 2,
329 'cycles': 3}},
330 'read_from_memory': None,
331 'register': None,
332 'write_to_memory': None},
333 'LBCS': {'needs_ea': True,
334 'ops': {0x1025: {'addr_mode': RELATIVE_WORD,
335 'bytes': 4,
336 'cycles': 5}},
337 'read_from_memory': None,
338 'register': None,
339 'write_to_memory': None}}},
340 'BLS': {'mnemonic': {'BLS': {'needs_ea': True,
341 'ops': {0x23: {'addr_mode': RELATIVE,
342 'bytes': 2,
343 'cycles': 3}},
344 'read_from_memory': None,
345 'register': None,
346 'write_to_memory': None},
347 'LBLS': {'needs_ea': True,
348 'ops': {0x1023: {'addr_mode': RELATIVE_WORD,
349 'bytes': 4,
350 'cycles': 5}},
351 'read_from_memory': None,
352 'register': None,
353 'write_to_memory': None}}},
354 'BLT': {'mnemonic': {'BLT': {'needs_ea': True,
355 'ops': {0x2d: {'addr_mode': RELATIVE,
356 'bytes': 2,
357 'cycles': 3}},
358 'read_from_memory': None,
359 'register': None,
360 'write_to_memory': None},
361 'LBLT': {'needs_ea': True,
362 'ops': {0x102d: {'addr_mode': RELATIVE_WORD,
363 'bytes': 4,
364 'cycles': 5}},
365 'read_from_memory': None,
366 'register': None,
367 'write_to_memory': None}}},
368 'BMI': {'mnemonic': {'BMI': {'needs_ea': True,
369 'ops': {0x2b: {'addr_mode': RELATIVE,
370 'bytes': 2,
371 'cycles': 3}},
372 'read_from_memory': None,
373 'register': None,
374 'write_to_memory': None},
375 'LBMI': {'needs_ea': True,
376 'ops': {0x102b: {'addr_mode': RELATIVE_WORD,
377 'bytes': 4,
378 'cycles': 5}},
379 'read_from_memory': None,
380 'register': None,
381 'write_to_memory': None}}},
382 'BNE': {'mnemonic': {'BNE': {'needs_ea': True,
383 'ops': {0x26: {'addr_mode': RELATIVE,
384 'bytes': 2,
385 'cycles': 3}},
386 'read_from_memory': None,
387 'register': None,
388 'write_to_memory': None},
389 'LBNE': {'needs_ea': True,
390 'ops': {0x1026: {'addr_mode': RELATIVE_WORD,
391 'bytes': 4,
392 'cycles': 5}},
393 'read_from_memory': None,
394 'register': None,
395 'write_to_memory': None}}},
396 'BPL': {'mnemonic': {'BPL': {'needs_ea': True,
397 'ops': {0x2a: {'addr_mode': RELATIVE,
398 'bytes': 2,
399 'cycles': 3}},
400 'read_from_memory': None,
401 'register': None,
402 'write_to_memory': None},
403 'LBPL': {'needs_ea': True,
404 'ops': {0x102a: {'addr_mode': RELATIVE_WORD,
405 'bytes': 4,
406 'cycles': 5}},
407 'read_from_memory': None,
408 'register': None,
409 'write_to_memory': None}}},
410 'BRA': {'mnemonic': {'BRA': {'needs_ea': True,
411 'ops': {0x20: {'addr_mode': RELATIVE,
412 'bytes': 2,
413 'cycles': 3}},
414 'read_from_memory': None,
415 'register': None,
416 'write_to_memory': None},
417 'LBRA': {'needs_ea': True,
418 'ops': {0x16: {'addr_mode': RELATIVE_WORD,
419 'bytes': 3,
420 'cycles': 5}},
421 'read_from_memory': None,
422 'register': None,
423 'write_to_memory': None}}},
424 'BRN': {'mnemonic': {'BRN': {'needs_ea': True,
425 'ops': {0x21: {'addr_mode': RELATIVE,
426 'bytes': 2,
427 'cycles': 3}},
428 'read_from_memory': None,
429 'register': None,
430 'write_to_memory': None},
431 'LBRN': {'needs_ea': True,
432 'ops': {0x1021: {'addr_mode': RELATIVE_WORD,
433 'bytes': 4,
434 'cycles': 5}},
435 'read_from_memory': None,
436 'register': None,
437 'write_to_memory': None}}},
438 'BSR': {'mnemonic': {'BSR': {'needs_ea': True,
439 'ops': {0x8d: {'addr_mode': RELATIVE,
440 'bytes': 2,
441 'cycles': 7}},
442 'read_from_memory': None,
443 'register': None,
444 'write_to_memory': None},
445 'LBSR': {'needs_ea': True,
446 'ops': {0x17: {'addr_mode': RELATIVE_WORD,
447 'bytes': 3,
448 'cycles': 9}},
449 'read_from_memory': None,
450 'register': None,
451 'write_to_memory': None}}},
452 'BVC': {'mnemonic': {'BVC': {'needs_ea': True,
453 'ops': {0x28: {'addr_mode': RELATIVE,
454 'bytes': 2,
455 'cycles': 3}},
456 'read_from_memory': None,
457 'register': None,
458 'write_to_memory': None},
459 'LBVC': {'needs_ea': True,
460 'ops': {0x1028: {'addr_mode': RELATIVE_WORD,
461 'bytes': 4,
462 'cycles': 5}},
463 'read_from_memory': None,
464 'register': None,
465 'write_to_memory': None}}},
466 'BVS': {'mnemonic': {'BVS': {'needs_ea': True,
467 'ops': {0x29: {'addr_mode': RELATIVE,
468 'bytes': 2,
469 'cycles': 3}},
470 'read_from_memory': None,
471 'register': None,
472 'write_to_memory': None},
473 'LBVS': {'needs_ea': True,
474 'ops': {0x1029: {'addr_mode': RELATIVE_WORD,
475 'bytes': 4,
476 'cycles': 5}},
477 'read_from_memory': None,
478 'register': None,
479 'write_to_memory': None}}},
480 'CLR': {'mnemonic': {'CLR': {'needs_ea': True,
481 'ops': {0x0f: {'addr_mode': DIRECT,
482 'bytes': 2,
483 'cycles': 6},
484 0x6f: {'addr_mode': INDEXED,
485 'bytes': 2,
486 'cycles': 6},
487 0x7f: {'addr_mode': EXTENDED,
488 'bytes': 3,
489 'cycles': 7}},
490 'read_from_memory': None,
491 'register': None,
492 'write_to_memory': BYTE},
493 'CLRA': {'needs_ea': False,
494 'ops': {0x4f: {'addr_mode': INHERENT,
495 'bytes': 1,
496 'cycles': 2}},
497 'read_from_memory': None,
498 'register': REG_A,
499 'write_to_memory': None},
500 'CLRB': {'needs_ea': False,
501 'ops': {0x5f: {'addr_mode': INHERENT,
502 'bytes': 1,
503 'cycles': 2}},
504 'read_from_memory': None,
505 'register': REG_B,
506 'write_to_memory': None}}},
507 'CMP': {'mnemonic': {'CMPA': {'needs_ea': False,
508 'ops': {0x81: {'addr_mode': IMMEDIATE,
509 'bytes': 2,
510 'cycles': 2},
511 0x91: {'addr_mode': DIRECT,
512 'bytes': 2,
513 'cycles': 4},
514 0xa1: {'addr_mode': INDEXED,
515 'bytes': 2,
516 'cycles': 4},
517 0xb1: {'addr_mode': EXTENDED,
518 'bytes': 3,
519 'cycles': 5}},
520 'read_from_memory': BYTE,
521 'register': REG_A,
522 'write_to_memory': None},
523 'CMPB': {'needs_ea': False,
524 'ops': {0xc1: {'addr_mode': IMMEDIATE,
525 'bytes': 2,
526 'cycles': 2},
527 0xd1: {'addr_mode': DIRECT,
528 'bytes': 2,
529 'cycles': 4},
530 0xe1: {'addr_mode': INDEXED,
531 'bytes': 2,
532 'cycles': 4},
533 0xf1: {'addr_mode': EXTENDED,
534 'bytes': 3,
535 'cycles': 5}},
536 'read_from_memory': BYTE,
537 'register': REG_B,
538 'write_to_memory': None},
539 'CMPD': {'needs_ea': False,
540 'ops': {0x1083: {'addr_mode': IMMEDIATE_WORD,
541 'bytes': 4,
542 'cycles': 5},
543 0x1093: {'addr_mode': DIRECT_WORD,
544 'bytes': 3,
545 'cycles': 7},
546 0x10a3: {'addr_mode': INDEXED_WORD,
547 'bytes': 3,
548 'cycles': 7},
549 0x10b3: {'addr_mode': EXTENDED_WORD,
550 'bytes': 4,
551 'cycles': 8}},
552 'read_from_memory': WORD,
553 'register': REG_D,
554 'write_to_memory': None},
555 'CMPS': {'needs_ea': False,
556 'ops': {0x118c: {'addr_mode': IMMEDIATE_WORD,
557 'bytes': 4,
558 'cycles': 5},
559 0x119c: {'addr_mode': DIRECT_WORD,
560 'bytes': 3,
561 'cycles': 7},
562 0x11ac: {'addr_mode': INDEXED_WORD,
563 'bytes': 3,
564 'cycles': 7},
565 0x11bc: {'addr_mode': EXTENDED_WORD,
566 'bytes': 4,
567 'cycles': 8}},
568 'read_from_memory': WORD,
569 'register': REG_S,
570 'write_to_memory': None},
571 'CMPU': {'needs_ea': False,
572 'ops': {0x1183: {'addr_mode': IMMEDIATE_WORD,
573 'bytes': 4,
574 'cycles': 5},
575 0x1193: {'addr_mode': DIRECT_WORD,
576 'bytes': 3,
577 'cycles': 7},
578 0x11a3: {'addr_mode': INDEXED_WORD,
579 'bytes': 3,
580 'cycles': 7},
581 0x11b3: {'addr_mode': EXTENDED_WORD,
582 'bytes': 4,
583 'cycles': 8}},
584 'read_from_memory': WORD,
585 'register': REG_U,
586 'write_to_memory': None},
587 'CMPX': {'needs_ea': False,
588 'ops': {0x8c: {'addr_mode': IMMEDIATE_WORD,
589 'bytes': 3,
590 'cycles': 4},
591 0x9c: {'addr_mode': DIRECT_WORD,
592 'bytes': 2,
593 'cycles': 6},
594 0xac: {'addr_mode': INDEXED_WORD,
595 'bytes': 2,
596 'cycles': 6},
597 0xbc: {'addr_mode': EXTENDED_WORD,
598 'bytes': 3,
599 'cycles': 7}},
600 'read_from_memory': WORD,
601 'register': REG_X,
602 'write_to_memory': None},
603 'CMPY': {'needs_ea': False,
604 'ops': {0x108c: {'addr_mode': IMMEDIATE_WORD,
605 'bytes': 4,
606 'cycles': 5},
607 0x109c: {'addr_mode': DIRECT_WORD,
608 'bytes': 3,
609 'cycles': 7},
610 0x10ac: {'addr_mode': INDEXED_WORD,
611 'bytes': 3,
612 'cycles': 7},
613 0x10bc: {'addr_mode': EXTENDED_WORD,
614 'bytes': 4,
615 'cycles': 8}},
616 'read_from_memory': WORD,
617 'register': REG_Y,
618 'write_to_memory': None}}},
619 'COM': {'mnemonic': {'COM': {'needs_ea': True,
620 'ops': {0x03: {'addr_mode': DIRECT,
621 'bytes': 2,
622 'cycles': 6},
623 0x63: {'addr_mode': INDEXED,
624 'bytes': 2,
625 'cycles': 6},
626 0x73: {'addr_mode': EXTENDED,
627 'bytes': 3,
628 'cycles': 7}},
629 'read_from_memory': BYTE,
630 'register': None,
631 'write_to_memory': BYTE},
632 'COMA': {'needs_ea': False,
633 'ops': {0x43: {'addr_mode': INHERENT,
634 'bytes': 1,
635 'cycles': 2}},
636 'read_from_memory': None,
637 'register': REG_A,
638 'write_to_memory': None},
639 'COMB': {'needs_ea': False,
640 'ops': {0x53: {'addr_mode': INHERENT,
641 'bytes': 1,
642 'cycles': 2}},
643 'read_from_memory': None,
644 'register': REG_B,
645 'write_to_memory': None}}},
646 'CWAI': {'mnemonic': {'CWAI': {'needs_ea': False,
647 'ops': {0x3c: {'addr_mode': IMMEDIATE,
648 'bytes': 2,
649 'cycles': 21}},
650 'read_from_memory': BYTE,
651 'register': None,
652 'write_to_memory': None}}},
653 'DAA': {'mnemonic': {'DAA': {'needs_ea': False,
654 'ops': {0x19: {'addr_mode': INHERENT,
655 'bytes': 1,
656 'cycles': 2}},
657 'read_from_memory': None,
658 'register': None,
659 'write_to_memory': None}}},
660 'DEC': {'mnemonic': {'DEC': {'needs_ea': True,
661 'ops': {0x0a: {'addr_mode': DIRECT,
662 'bytes': 2,
663 'cycles': 6},
664 0x6a: {'addr_mode': INDEXED,
665 'bytes': 2,
666 'cycles': 6},
667 0x7a: {'addr_mode': EXTENDED,
668 'bytes': 3,
669 'cycles': 7}},
670 'read_from_memory': BYTE,
671 'register': None,
672 'write_to_memory': BYTE},
673 'DECA': {'needs_ea': False,
674 'ops': {0x4a: {'addr_mode': INHERENT,
675 'bytes': 1,
676 'cycles': 2}},
677 'read_from_memory': None,
678 'register': REG_A,
679 'write_to_memory': None},
680 'DECB': {'needs_ea': False,
681 'ops': {0x5a: {'addr_mode': INHERENT,
682 'bytes': 1,
683 'cycles': 2}},
684 'read_from_memory': None,
685 'register': REG_B,
686 'write_to_memory': None}}},
687 'EOR': {'mnemonic': {'EORA': {'needs_ea': False,
688 'ops': {0x88: {'addr_mode': IMMEDIATE,
689 'bytes': 2,
690 'cycles': 2},
691 0x98: {'addr_mode': DIRECT,
692 'bytes': 2,
693 'cycles': 4},
694 0xa8: {'addr_mode': INDEXED,
695 'bytes': 2,
696 'cycles': 4},
697 0xb8: {'addr_mode': EXTENDED,
698 'bytes': 3,
699 'cycles': 5}},
700 'read_from_memory': BYTE,
701 'register': REG_A,
702 'write_to_memory': None},
703 'EORB': {'needs_ea': False,
704 'ops': {0xc8: {'addr_mode': IMMEDIATE,
705 'bytes': 2,
706 'cycles': 2},
707 0xd8: {'addr_mode': DIRECT,
708 'bytes': 2,
709 'cycles': 4},
710 0xe8: {'addr_mode': INDEXED,
711 'bytes': 2,
712 'cycles': 4},
713 0xf8: {'addr_mode': EXTENDED,
714 'bytes': 3,
715 'cycles': 5}},
716 'read_from_memory': BYTE,
717 'register': REG_B,
718 'write_to_memory': None}}},
719 'EXG': {'mnemonic': {'EXG': {'needs_ea': False,
720 'ops': {0x1e: {'addr_mode': IMMEDIATE,
721 'bytes': 2,
722 'cycles': 8}},
723 'read_from_memory': BYTE,
724 'register': None,
725 'write_to_memory': None}}},
726 'INC': {'mnemonic': {'INC': {'needs_ea': True,
727 'ops': {0x0c: {'addr_mode': DIRECT,
728 'bytes': 2,
729 'cycles': 6},
730 0x6c: {'addr_mode': INDEXED,
731 'bytes': 2,
732 'cycles': 6},
733 0x7c: {'addr_mode': EXTENDED,
734 'bytes': 3,
735 'cycles': 7}},
736 'read_from_memory': BYTE,
737 'register': None,
738 'write_to_memory': BYTE},
739 'INCA': {'needs_ea': False,
740 'ops': {0x4c: {'addr_mode': INHERENT,
741 'bytes': 1,
742 'cycles': 2}},
743 'read_from_memory': None,
744 'register': REG_A,
745 'write_to_memory': None},
746 'INCB': {'needs_ea': False,
747 'ops': {0x5c: {'addr_mode': INHERENT,
748 'bytes': 1,
749 'cycles': 2}},
750 'read_from_memory': None,
751 'register': REG_B,
752 'write_to_memory': None}}},
753 'JMP': {'mnemonic': {'JMP': {'needs_ea': True,
754 'ops': {0x0e: {'addr_mode': DIRECT,
755 'bytes': 2,
756 'cycles': 3},
757 0x6e: {'addr_mode': INDEXED,
758 'bytes': 2,
759 'cycles': 3},
760 0x7e: {'addr_mode': EXTENDED,
761 'bytes': 3,
762 'cycles': 3}},
763 'read_from_memory': None,
764 'register': None,
765 'write_to_memory': None}}},
766 'JSR': {'mnemonic': {'JSR': {'needs_ea': True,
767 'ops': {0x9d: {'addr_mode': DIRECT,
768 'bytes': 2,
769 'cycles': 7},
770 0xad: {'addr_mode': INDEXED,
771 'bytes': 2,
772 'cycles': 7},
773 0xbd: {'addr_mode': EXTENDED,
774 'bytes': 3,
775 'cycles': 8}},
776 'read_from_memory': None,
777 'register': None,
778 'write_to_memory': None}}},
779 'LD': {'mnemonic': {'LDA': {'needs_ea': False,
780 'ops': {0x86: {'addr_mode': IMMEDIATE,
781 'bytes': 2,
782 'cycles': 2},
783 0x96: {'addr_mode': DIRECT,
784 'bytes': 2,
785 'cycles': 4},
786 0xa6: {'addr_mode': INDEXED,
787 'bytes': 2,
788 'cycles': 4},
789 0xb6: {'addr_mode': EXTENDED,
790 'bytes': 3,
791 'cycles': 5}},
792 'read_from_memory': BYTE,
793 'register': REG_A,
794 'write_to_memory': None},
795 'LDB': {'needs_ea': False,
796 'ops': {0xc6: {'addr_mode': IMMEDIATE,
797 'bytes': 2,
798 'cycles': 2},
799 0xd6: {'addr_mode': DIRECT,
800 'bytes': 2,
801 'cycles': 4},
802 0xe6: {'addr_mode': INDEXED,
803 'bytes': 2,
804 'cycles': 4},
805 0xf6: {'addr_mode': EXTENDED,
806 'bytes': 3,
807 'cycles': 5}},
808 'read_from_memory': BYTE,
809 'register': REG_B,
810 'write_to_memory': None},
811 'LDD': {'needs_ea': False,
812 'ops': {0xcc: {'addr_mode': IMMEDIATE_WORD,
813 'bytes': 3,
814 'cycles': 3},
815 0xdc: {'addr_mode': DIRECT_WORD,
816 'bytes': 2,
817 'cycles': 5},
818 0xec: {'addr_mode': INDEXED_WORD,
819 'bytes': 2,
820 'cycles': 5},
821 0xfc: {'addr_mode': EXTENDED_WORD,
822 'bytes': 3,
823 'cycles': 6}},
824 'read_from_memory': WORD,
825 'register': REG_D,
826 'write_to_memory': None},
827 'LDS': {'needs_ea': False,
828 'ops': {0x10ce: {'addr_mode': IMMEDIATE_WORD,
829 'bytes': 4,
830 'cycles': 4},
831 0x10de: {'addr_mode': DIRECT_WORD,
832 'bytes': 3,
833 'cycles': 6},
834 0x10ee: {'addr_mode': INDEXED_WORD,
835 'bytes': 3,
836 'cycles': 6},
837 0x10fe: {'addr_mode': EXTENDED_WORD,
838 'bytes': 4,
839 'cycles': 7}},
840 'read_from_memory': WORD,
841 'register': REG_S,
842 'write_to_memory': None},
843 'LDU': {'needs_ea': False,
844 'ops': {0xce: {'addr_mode': IMMEDIATE_WORD,
845 'bytes': 3,
846 'cycles': 3},
847 0xde: {'addr_mode': DIRECT_WORD,
848 'bytes': 2,
849 'cycles': 5},
850 0xee: {'addr_mode': INDEXED_WORD,
851 'bytes': 2,
852 'cycles': 5},
853 0xfe: {'addr_mode': EXTENDED_WORD,
854 'bytes': 3,
855 'cycles': 6}},
856 'read_from_memory': WORD,
857 'register': REG_U,
858 'write_to_memory': None},
859 'LDX': {'needs_ea': False,
860 'ops': {0x8e: {'addr_mode': IMMEDIATE_WORD,
861 'bytes': 3,
862 'cycles': 3},
863 0x9e: {'addr_mode': DIRECT_WORD,
864 'bytes': 2,
865 'cycles': 5},
866 0xae: {'addr_mode': INDEXED_WORD,
867 'bytes': 2,
868 'cycles': 5},
869 0xbe: {'addr_mode': EXTENDED_WORD,
870 'bytes': 3,
871 'cycles': 6}},
872 'read_from_memory': WORD,
873 'register': REG_X,
874 'write_to_memory': None},
875 'LDY': {'needs_ea': False,
876 'ops': {0x108e: {'addr_mode': IMMEDIATE_WORD,
877 'bytes': 4,
878 'cycles': 4},
879 0x109e: {'addr_mode': DIRECT_WORD,
880 'bytes': 3,
881 'cycles': 6},
882 0x10ae: {'addr_mode': INDEXED_WORD,
883 'bytes': 3,
884 'cycles': 6},
885 0x10be: {'addr_mode': EXTENDED_WORD,
886 'bytes': 4,
887 'cycles': 7}},
888 'read_from_memory': WORD,
889 'register': REG_Y,
890 'write_to_memory': None}}},
891 'LEA': {'mnemonic': {'LEAS': {'needs_ea': True,
892 'ops': {0x32: {'addr_mode': INDEXED,
893 'bytes': 2,
894 'cycles': 4}},
895 'read_from_memory': None,
896 'register': REG_S,
897 'write_to_memory': None},
898 'LEAU': {'needs_ea': True,
899 'ops': {0x33: {'addr_mode': INDEXED,
900 'bytes': 2,
901 'cycles': 4}},
902 'read_from_memory': None,
903 'register': REG_U,
904 'write_to_memory': None},
905 'LEAX': {'needs_ea': True,
906 'ops': {0x30: {'addr_mode': INDEXED,
907 'bytes': 2,
908 'cycles': 4}},
909 'read_from_memory': None,
910 'register': REG_X,
911 'write_to_memory': None},
912 'LEAY': {'needs_ea': True,
913 'ops': {0x31: {'addr_mode': INDEXED,
914 'bytes': 2,
915 'cycles': 4}},
916 'read_from_memory': None,
917 'register': REG_Y,
918 'write_to_memory': None}}},
919 'LSL': {'mnemonic': {'LSL': {'needs_ea': True,
920 'ops': {0x08: {'addr_mode': DIRECT,
921 'bytes': 2,
922 'cycles': 6},
923 0x68: {'addr_mode': INDEXED,
924 'bytes': 2,
925 'cycles': 6},
926 0x78: {'addr_mode': EXTENDED,
927 'bytes': 3,
928 'cycles': 7}},
929 'read_from_memory': BYTE,
930 'register': None,
931 'write_to_memory': BYTE},
932 'LSLA': {'needs_ea': False,
933 'ops': {0x48: {'addr_mode': INHERENT,
934 'bytes': 1,
935 'cycles': 2}},
936 'read_from_memory': None,
937 'register': REG_A,
938 'write_to_memory': None},
939 'LSLB': {'needs_ea': False,
940 'ops': {0x58: {'addr_mode': INHERENT,
941 'bytes': 1,
942 'cycles': 2}},
943 'read_from_memory': None,
944 'register': REG_B,
945 'write_to_memory': None}}},
946 'LSR': {'mnemonic': {'LSR': {'needs_ea': True,
947 'ops': {0x04: {'addr_mode': DIRECT,
948 'bytes': 2,
949 'cycles': 6},
950 0x64: {'addr_mode': INDEXED,
951 'bytes': 2,
952 'cycles': 6},
953 0x74: {'addr_mode': EXTENDED,
954 'bytes': 3,
955 'cycles': 7}},
956 'read_from_memory': BYTE,
957 'register': None,
958 'write_to_memory': BYTE},
959 'LSRA': {'needs_ea': False,
960 'ops': {0x44: {'addr_mode': INHERENT,
961 'bytes': 1,
962 'cycles': 2}},
963 'read_from_memory': None,
964 'register': REG_A,
965 'write_to_memory': None},
966 'LSRB': {'needs_ea': False,
967 'ops': {0x54: {'addr_mode': INHERENT,
968 'bytes': 1,
969 'cycles': 2}},
970 'read_from_memory': None,
971 'register': REG_B,
972 'write_to_memory': None}}},
973 'MUL': {'mnemonic': {'MUL': {'needs_ea': False,
974 'ops': {0x3d: {'addr_mode': INHERENT,
975 'bytes': 1,
976 'cycles': 11}},
977 'read_from_memory': None,
978 'register': None,
979 'write_to_memory': None}}},
980 'NEG': {'mnemonic': {'NEG': {'needs_ea': True,
981 'ops': {0x00: {'addr_mode': DIRECT,
982 'bytes': 2,
983 'cycles': 6},
984 0x60: {'addr_mode': INDEXED,
985 'bytes': 2,
986 'cycles': 6},
987 0x70: {'addr_mode': EXTENDED,
988 'bytes': 3,
989 'cycles': 7}},
990 'read_from_memory': BYTE,
991 'register': None,
992 'write_to_memory': BYTE},
993 'NEGA': {'needs_ea': False,
994 'ops': {0x40: {'addr_mode': INHERENT,
995 'bytes': 1,
996 'cycles': 2}},
997 'read_from_memory': None,
998 'register': REG_A,
999 'write_to_memory': None},
1000 'NEGB': {'needs_ea': False,
1001 'ops': {0x50: {'addr_mode': INHERENT,
1002 'bytes': 1,
1003 'cycles': 2}},
1004 'read_from_memory': None,
1005 'register': REG_B,
1006 'write_to_memory': None}}},
1007 'NOP': {'mnemonic': {'NOP': {'needs_ea': False,
1008 'ops': {0x12: {'addr_mode': INHERENT,
1009 'bytes': 1,
1010 'cycles': 2}},
1011 'read_from_memory': None,
1012 'register': None,
1013 'write_to_memory': None}}},
1014 'OR': {'mnemonic': {'ORA': {'needs_ea': False,
1015 'ops': {0x8a: {'addr_mode': IMMEDIATE,
1016 'bytes': 2,
1017 'cycles': 2},
1018 0x9a: {'addr_mode': DIRECT,
1019 'bytes': 2,
1020 'cycles': 4},
1021 0xaa: {'addr_mode': INDEXED,
1022 'bytes': 2,
1023 'cycles': 4},
1024 0xba: {'addr_mode': EXTENDED,
1025 'bytes': 3,
1026 'cycles': 5}},
1027 'read_from_memory': BYTE,
1028 'register': REG_A,
1029 'write_to_memory': None},
1030 'ORB': {'needs_ea': False,
1031 'ops': {0xca: {'addr_mode': IMMEDIATE,
1032 'bytes': 2,
1033 'cycles': 2},
1034 0xda: {'addr_mode': DIRECT,
1035 'bytes': 2,
1036 'cycles': 4},
1037 0xea: {'addr_mode': INDEXED,
1038 'bytes': 2,
1039 'cycles': 4},
1040 0xfa: {'addr_mode': EXTENDED,
1041 'bytes': 3,
1042 'cycles': 5}},
1043 'read_from_memory': BYTE,
1044 'register': REG_B,
1045 'write_to_memory': None},
1046 'ORCC': {'needs_ea': False,
1047 'ops': {0x1a: {'addr_mode': IMMEDIATE,
1048 'bytes': 2,
1049 'cycles': 3}},
1050 'read_from_memory': BYTE,
1051 'register': REG_CC,
1052 'write_to_memory': None}}},
1053 'PAGE': {'mnemonic': {'PAGE 1': {'needs_ea': False,
1054 'ops': {0x10: {'addr_mode': None,
1055 'bytes': 1,
1056 'cycles': 1}},
1057 'read_from_memory': None,
1058 'register': None,
1059 'write_to_memory': None},
1060 'PAGE 2': {'needs_ea': False,
1061 'ops': {0x11: {'addr_mode': None,
1062 'bytes': 1,
1063 'cycles': 1}},
1064 'read_from_memory': None,
1065 'register': None,
1066 'write_to_memory': None}}},
1067 'PSH': {'mnemonic': {'PSHS': {'needs_ea': False,
1068 'ops': {0x34: {'addr_mode': IMMEDIATE,
1069 'bytes': 2,
1070 'cycles': 5}},
1071 'read_from_memory': BYTE,
1072 'register': REG_S,
1073 'write_to_memory': None},
1074 'PSHU': {'needs_ea': False,
1075 'ops': {0x36: {'addr_mode': IMMEDIATE,
1076 'bytes': 2,
1077 'cycles': 5}},
1078 'read_from_memory': BYTE,
1079 'register': REG_U,
1080 'write_to_memory': None}}},
1081 'PUL': {'mnemonic': {'PULS': {'needs_ea': False,
1082 'ops': {0x35: {'addr_mode': IMMEDIATE,
1083 'bytes': 2,
1084 'cycles': 5}},
1085 'read_from_memory': BYTE,
1086 'register': REG_S,
1087 'write_to_memory': None},
1088 'PULU': {'needs_ea': False,
1089 'ops': {0x37: {'addr_mode': IMMEDIATE,
1090 'bytes': 2,
1091 'cycles': 5}},
1092 'read_from_memory': BYTE,
1093 'register': REG_U,
1094 'write_to_memory': None}}},
1095 'RESET': {'mnemonic': {'RESET': {'needs_ea': False,
1096 'ops': {0x3e: {'addr_mode': None,
1097 'bytes': 1,
1098 'cycles': -1}},
1099 'read_from_memory': None,
1100 'register': None,
1101 'write_to_memory': None}}},
1102 'ROL': {'mnemonic': {'ROL': {'needs_ea': True,
1103 'ops': {0x09: {'addr_mode': DIRECT,
1104 'bytes': 2,
1105 'cycles': 6},
1106 0x69: {'addr_mode': INDEXED,
1107 'bytes': 2,
1108 'cycles': 6},
1109 0x79: {'addr_mode': EXTENDED,
1110 'bytes': 3,
1111 'cycles': 7}},
1112 'read_from_memory': BYTE,
1113 'register': None,
1114 'write_to_memory': BYTE},
1115 'ROLA': {'needs_ea': False,
1116 'ops': {0x49: {'addr_mode': INHERENT,
1117 'bytes': 1,
1118 'cycles': 2}},
1119 'read_from_memory': None,
1120 'register': REG_A,
1121 'write_to_memory': None},
1122 'ROLB': {'needs_ea': False,
1123 'ops': {0x59: {'addr_mode': INHERENT,
1124 'bytes': 1,
1125 'cycles': 2}},
1126 'read_from_memory': None,
1127 'register': REG_B,
1128 'write_to_memory': None}}},
1129 'ROR': {'mnemonic': {'ROR': {'needs_ea': True,
1130 'ops': {0x06: {'addr_mode': DIRECT,
1131 'bytes': 2,
1132 'cycles': 6},
1133 0x66: {'addr_mode': INDEXED,
1134 'bytes': 2,
1135 'cycles': 6},
1136 0x76: {'addr_mode': EXTENDED,
1137 'bytes': 3,
1138 'cycles': 7}},
1139 'read_from_memory': BYTE,
1140 'register': None,
1141 'write_to_memory': BYTE},
1142 'RORA': {'needs_ea': False,
1143 'ops': {0x46: {'addr_mode': INHERENT,
1144 'bytes': 1,
1145 'cycles': 2}},
1146 'read_from_memory': None,
1147 'register': REG_A,
1148 'write_to_memory': None},
1149 'RORB': {'needs_ea': False,
1150 'ops': {0x56: {'addr_mode': INHERENT,
1151 'bytes': 1,
1152 'cycles': 2}},
1153 'read_from_memory': None,
1154 'register': REG_B,
1155 'write_to_memory': None}}},
1156 'RTI': {'mnemonic': {'RTI': {'needs_ea': False,
1157 'ops': {0x3b: {'addr_mode': INHERENT,
1158 'bytes': 1,
1159 'cycles': 6}},
1160 'read_from_memory': None,
1161 'register': None,
1162 'write_to_memory': None}}},
1163 'RTS': {'mnemonic': {'RTS': {'needs_ea': False,
1164 'ops': {0x39: {'addr_mode': INHERENT,
1165 'bytes': 1,
1166 'cycles': 5}},
1167 'read_from_memory': None,
1168 'register': None,
1169 'write_to_memory': None}}},
1170 'SBC': {'mnemonic': {'SBCA': {'needs_ea': False,
1171 'ops': {0x82: {'addr_mode': IMMEDIATE,
1172 'bytes': 2,
1173 'cycles': 2},
1174 0x92: {'addr_mode': DIRECT,
1175 'bytes': 2,
1176 'cycles': 4},
1177 0xa2: {'addr_mode': INDEXED,
1178 'bytes': 2,
1179 'cycles': 4},
1180 0xb2: {'addr_mode': EXTENDED,
1181 'bytes': 3,
1182 'cycles': 5}},
1183 'read_from_memory': BYTE,
1184 'register': REG_A,
1185 'write_to_memory': None},
1186 'SBCB': {'needs_ea': False,
1187 'ops': {0xc2: {'addr_mode': IMMEDIATE,
1188 'bytes': 2,
1189 'cycles': 2},
1190 0xd2: {'addr_mode': DIRECT,
1191 'bytes': 2,
1192 'cycles': 4},
1193 0xe2: {'addr_mode': INDEXED,
1194 'bytes': 2,
1195 'cycles': 4},
1196 0xf2: {'addr_mode': EXTENDED,
1197 'bytes': 3,
1198 'cycles': 5}},
1199 'read_from_memory': BYTE,
1200 'register': REG_B,
1201 'write_to_memory': None}}},
1202 'SEX': {'mnemonic': {'SEX': {'needs_ea': False,
1203 'ops': {0x1d: {'addr_mode': INHERENT,
1204 'bytes': 1,
1205 'cycles': 2}},
1206 'read_from_memory': None,
1207 'register': None,
1208 'write_to_memory': None}}},
1209 'ST': {'mnemonic': {'STA': {'needs_ea': True,
1210 'ops': {0x97: {'addr_mode': DIRECT,
1211 'bytes': 2,
1212 'cycles': 4},
1213 0xa7: {'addr_mode': INDEXED,
1214 'bytes': 2,
1215 'cycles': 4},
1216 0xb7: {'addr_mode': EXTENDED,
1217 'bytes': 3,
1218 'cycles': 5}},
1219 'read_from_memory': None,
1220 'register': REG_A,
1221 'write_to_memory': BYTE},
1222 'STB': {'needs_ea': True,
1223 'ops': {0xd7: {'addr_mode': DIRECT,
1224 'bytes': 2,
1225 'cycles': 4},
1226 0xe7: {'addr_mode': INDEXED,
1227 'bytes': 2,
1228 'cycles': 4},
1229 0xf7: {'addr_mode': EXTENDED,
1230 'bytes': 3,
1231 'cycles': 5}},
1232 'read_from_memory': None,
1233 'register': REG_B,
1234 'write_to_memory': BYTE},
1235 'STD': {'needs_ea': True,
1236 'ops': {0xdd: {'addr_mode': DIRECT,
1237 'bytes': 2,
1238 'cycles': 5},
1239 0xed: {'addr_mode': INDEXED,
1240 'bytes': 2,
1241 'cycles': 5},
1242 0xfd: {'addr_mode': EXTENDED,
1243 'bytes': 3,
1244 'cycles': 6}},
1245 'read_from_memory': None,
1246 'register': REG_D,
1247 'write_to_memory': WORD},
1248 'STS': {'needs_ea': True,
1249 'ops': {0x10df: {'addr_mode': DIRECT,
1250 'bytes': 3,
1251 'cycles': 6},
1252 0x10ef: {'addr_mode': INDEXED,
1253 'bytes': 3,
1254 'cycles': 6},
1255 0x10ff: {'addr_mode': EXTENDED,
1256 'bytes': 4,
1257 'cycles': 7}},
1258 'read_from_memory': None,
1259 'register': REG_S,
1260 'write_to_memory': WORD},
1261 'STU': {'needs_ea': True,
1262 'ops': {0xdf: {'addr_mode': DIRECT,
1263 'bytes': 2,
1264 'cycles': 5},
1265 0xef: {'addr_mode': INDEXED,
1266 'bytes': 2,
1267 'cycles': 5},
1268 0xff: {'addr_mode': EXTENDED,
1269 'bytes': 3,
1270 'cycles': 6}},
1271 'read_from_memory': None,
1272 'register': REG_U,
1273 'write_to_memory': WORD},
1274 'STX': {'needs_ea': True,
1275 'ops': {0x9f: {'addr_mode': DIRECT,
1276 'bytes': 2,
1277 'cycles': 5},
1278 0xaf: {'addr_mode': INDEXED,
1279 'bytes': 2,
1280 'cycles': 5},
1281 0xbf: {'addr_mode': EXTENDED,
1282 'bytes': 3,
1283 'cycles': 6}},
1284 'read_from_memory': None,
1285 'register': REG_X,
1286 'write_to_memory': WORD},
1287 'STY': {'needs_ea': True,
1288 'ops': {0x109f: {'addr_mode': DIRECT,
1289 'bytes': 3,
1290 'cycles': 6},
1291 0x10af: {'addr_mode': INDEXED,
1292 'bytes': 3,
1293 'cycles': 6},
1294 0x10bf: {'addr_mode': EXTENDED,
1295 'bytes': 4,
1296 'cycles': 7}},
1297 'read_from_memory': None,
1298 'register': REG_Y,
1299 'write_to_memory': WORD}}},
1300 'SUB': {'mnemonic': {'SUBA': {'needs_ea': False,
1301 'ops': {0x80: {'addr_mode': IMMEDIATE,
1302 'bytes': 2,
1303 'cycles': 2},
1304 0x90: {'addr_mode': DIRECT,
1305 'bytes': 2,
1306 'cycles': 4},
1307 0xa0: {'addr_mode': INDEXED,
1308 'bytes': 2,
1309 'cycles': 4},
1310 0xb0: {'addr_mode': EXTENDED,
1311 'bytes': 3,
1312 'cycles': 5}},
1313 'read_from_memory': BYTE,
1314 'register': REG_A,
1315 'write_to_memory': None},
1316 'SUBB': {'needs_ea': False,
1317 'ops': {0xc0: {'addr_mode': IMMEDIATE,
1318 'bytes': 2,
1319 'cycles': 2},
1320 0xd0: {'addr_mode': DIRECT,
1321 'bytes': 2,
1322 'cycles': 4},
1323 0xe0: {'addr_mode': INDEXED,
1324 'bytes': 2,
1325 'cycles': 4},
1326 0xf0: {'addr_mode': EXTENDED,
1327 'bytes': 3,
1328 'cycles': 5}},
1329 'read_from_memory': BYTE,
1330 'register': REG_B,
1331 'write_to_memory': None},
1332 'SUBD': {'needs_ea': False,
1333 'ops': {0x83: {'addr_mode': IMMEDIATE_WORD,
1334 'bytes': 3,
1335 'cycles': 4},
1336 0x93: {'addr_mode': DIRECT_WORD,
1337 'bytes': 2,
1338 'cycles': 6},
1339 0xa3: {'addr_mode': INDEXED_WORD,
1340 'bytes': 2,
1341 'cycles': 6},
1342 0xb3: {'addr_mode': EXTENDED_WORD,
1343 'bytes': 3,
1344 'cycles': 7}},
1345 'read_from_memory': WORD,
1346 'register': REG_D,
1347 'write_to_memory': None}}},
1348 'SWI': {'mnemonic': {'SWI': {'needs_ea': False,
1349 'ops': {0x3f: {'addr_mode': INHERENT,
1350 'bytes': 1,
1351 'cycles': 19}},
1352 'read_from_memory': None,
1353 'register': None,
1354 'write_to_memory': None},
1355 'SWI2': {'needs_ea': False,
1356 'ops': {0x103f: {'addr_mode': INHERENT,
1357 'bytes': 2,
1358 'cycles': 20}},
1359 'read_from_memory': None,
1360 'register': None,
1361 'write_to_memory': None},
1362 'SWI3': {'needs_ea': False,
1363 'ops': {0x113f: {'addr_mode': INHERENT,
1364 'bytes': 2,
1365 'cycles': 20}},
1366 'read_from_memory': None,
1367 'register': None,
1368 'write_to_memory': None}}},
1369 'SYNC': {'mnemonic': {'SYNC': {'needs_ea': False,
1370 'ops': {0x13: {'addr_mode': INHERENT,
1371 'bytes': 1,
1372 'cycles': 2}},
1373 'read_from_memory': None,
1374 'register': None,
1375 'write_to_memory': None}}},
1376 'TFR': {'mnemonic': {'TFR': {'needs_ea': False,
1377 'ops': {0x1f: {'addr_mode': IMMEDIATE,
1378 'bytes': 2,
1379 'cycles': 7}},
1380 'read_from_memory': BYTE,
1381 'register': None,
1382 'write_to_memory': None}}},
1383 'TST': {'mnemonic': {'TST': {'needs_ea': False,
1384 'ops': {0x0d: {'addr_mode': DIRECT,
1385 'bytes': 2,
1386 'cycles': 6},
1387 0x6d: {'addr_mode': INDEXED,
1388 'bytes': 2,
1389 'cycles': 6},
1390 0x7d: {'addr_mode': EXTENDED,
1391 'bytes': 3,
1392 'cycles': 7}},
1393 'read_from_memory': BYTE,
1394 'register': None,
1395 'write_to_memory': None},
1396 'TSTA': {'needs_ea': False,
1397 'ops': {0x4d: {'addr_mode': INHERENT,
1398 'bytes': 1,
1399 'cycles': 2}},
1400 'read_from_memory': None,
1401 'register': REG_A,
1402 'write_to_memory': None},
1403 'TSTB': {'needs_ea': False,
1404 'ops': {0x5d: {'addr_mode': INHERENT,
1405 'bytes': 1,
1406 'cycles': 2}},
1407 'read_from_memory': None,
1408 'register': REG_B,
1409 'write_to_memory': None}}}}