Rizin
unix-like reverse engineering framework and cli tools
m6811.inc
Go to the documentation of this file.
1 
2 // Additional instructions only supported on M68HC11
3 static const inst_pageX g_m6811_inst_overlay_table[] = {
4  { 0x00, M680X_INS_TEST, inh_hid, inh_hid },
5  { 0x02, M680X_INS_IDIV, inh_hid, inh_hid },
6  { 0x03, M680X_INS_FDIV, inh_hid, inh_hid },
7  { 0x12, M680X_INS_BRSET, dir_hid, imm8rel_hid },
8  { 0x13, M680X_INS_BRCLR, dir_hid, imm8rel_hid },
9  { 0x14, M680X_INS_BSET, dir_hid, imm8_hid },
10  { 0x15, M680X_INS_BCLR, dir_hid, imm8_hid },
11  { 0x1c, M680X_INS_BSET, idxX_hid, imm8_hid },
12  { 0x1d, M680X_INS_BCLR, idxX_hid, imm8_hid },
13  { 0x1e, M680X_INS_BRSET, idxX_hid, imm8rel_hid },
14  { 0x1f, M680X_INS_BRCLR, idxX_hid, imm8rel_hid },
15  { 0x8f, M680X_INS_XGDX, inh_hid, inh_hid },
16  { 0xcf, M680X_INS_STOP, inh_hid, inh_hid },
17 };
18 
19 // M68HC11 PAGE2 instructions
20 static const inst_pageX g_m6811_inst_page2_table[] = {
21  { 0x08, M680X_INS_INY, inh_hid, inh_hid },
22  { 0x09, M680X_INS_DEY, inh_hid, inh_hid },
23  { 0x1c, M680X_INS_BSET, idxY_hid, imm8_hid },
24  { 0x1d, M680X_INS_BCLR, idxY_hid, imm8_hid },
25  { 0x1e, M680X_INS_BRSET, idxY_hid, imm8rel_hid },
26  { 0x1f, M680X_INS_BRCLR, idxY_hid, imm8rel_hid },
27  { 0x30, M680X_INS_TSY, inh_hid, inh_hid },
28  { 0x35, M680X_INS_TYS, inh_hid, inh_hid },
29  { 0x38, M680X_INS_PULY, inh_hid, inh_hid },
30  { 0x3a, M680X_INS_ABY, inh_hid, inh_hid },
31  { 0x3c, M680X_INS_PSHY, inh_hid, inh_hid },
32  { 0x60, M680X_INS_NEG, idxY_hid, inh_hid },
33  { 0x63, M680X_INS_COM, idxY_hid, inh_hid },
34  { 0x64, M680X_INS_LSR, idxY_hid, inh_hid },
35  { 0x66, M680X_INS_ROR, idxY_hid, inh_hid },
36  { 0x67, M680X_INS_ASR, idxY_hid, inh_hid },
37  { 0x68, M680X_INS_ASL, idxY_hid, inh_hid },
38  { 0x69, M680X_INS_ROL, idxY_hid, inh_hid },
39  { 0x6a, M680X_INS_DEC, idxY_hid, inh_hid },
40  { 0x6c, M680X_INS_INC, idxY_hid, inh_hid },
41  { 0x6d, M680X_INS_TST, idxY_hid, inh_hid },
42  { 0x6e, M680X_INS_JMP, idxY_hid, inh_hid },
43  { 0x6f, M680X_INS_CLR, idxY_hid, inh_hid },
44  { 0x8c, M680X_INS_CPY, imm16_hid, inh_hid },
45  { 0x8f, M680X_INS_XGDY, inh_hid, inh_hid },
46  { 0x9c, M680X_INS_CPY, dir_hid, inh_hid },
47  { 0xa0, M680X_INS_SUBA, idxY_hid, inh_hid },
48  { 0xa1, M680X_INS_CMPA, idxY_hid, inh_hid },
49  { 0xa2, M680X_INS_SBCA, idxY_hid, inh_hid },
50  { 0xa3, M680X_INS_SUBD, idxY_hid, inh_hid },
51  { 0xa4, M680X_INS_ANDA, idxY_hid, inh_hid },
52  { 0xa5, M680X_INS_BITA, idxY_hid, inh_hid },
53  { 0xa6, M680X_INS_LDAA, idxY_hid, inh_hid },
54  { 0xa7, M680X_INS_STAA, idxY_hid, inh_hid },
55  { 0xa8, M680X_INS_EORA, idxY_hid, inh_hid },
56  { 0xa9, M680X_INS_ADCA, idxY_hid, inh_hid },
57  { 0xaa, M680X_INS_ORAA, idxY_hid, inh_hid },
58  { 0xab, M680X_INS_ADDA, idxY_hid, inh_hid },
59  { 0xac, M680X_INS_CPY, idxY_hid, inh_hid },
60  { 0xad, M680X_INS_JSR, idxY_hid, inh_hid },
61  { 0xae, M680X_INS_LDS, idxY_hid, inh_hid },
62  { 0xaf, M680X_INS_STS, idxY_hid, inh_hid },
63  { 0xbc, M680X_INS_CPY, ext_hid, inh_hid },
64  { 0xce, M680X_INS_LDY, imm16_hid, inh_hid },
65  { 0xde, M680X_INS_LDY, dir_hid, inh_hid },
66  { 0xdf, M680X_INS_STY, dir_hid, inh_hid },
67  { 0xe0, M680X_INS_SUBB, idxY_hid, inh_hid },
68  { 0xe1, M680X_INS_CMPB, idxY_hid, inh_hid },
69  { 0xe2, M680X_INS_SBCB, idxY_hid, inh_hid },
70  { 0xe3, M680X_INS_ADDD, idxY_hid, inh_hid },
71  { 0xe4, M680X_INS_ANDB, idxY_hid, inh_hid },
72  { 0xe5, M680X_INS_BITB, idxY_hid, inh_hid },
73  { 0xe6, M680X_INS_LDAB, idxY_hid, inh_hid },
74  { 0xe7, M680X_INS_STAB, idxY_hid, inh_hid },
75  { 0xe8, M680X_INS_EORB, idxY_hid, inh_hid },
76  { 0xe9, M680X_INS_ADCB, idxY_hid, inh_hid },
77  { 0xea, M680X_INS_ORAB, idxY_hid, inh_hid },
78  { 0xeb, M680X_INS_ADDB, idxY_hid, inh_hid },
79  { 0xec, M680X_INS_LDD, idxY_hid, inh_hid },
80  { 0xed, M680X_INS_STD, idxY_hid, inh_hid },
81  { 0xee, M680X_INS_LDY, idxY_hid, inh_hid },
82  { 0xef, M680X_INS_STY, idxY_hid, inh_hid },
83  { 0xfe, M680X_INS_LDY, ext_hid, inh_hid },
84  { 0xff, M680X_INS_STY, ext_hid, inh_hid },
85 };
86 
87 // M68HC11 PAGE3 instructions
88 static const inst_pageX g_m6811_inst_page3_table[] = {
89  { 0x83, M680X_INS_CPD, imm16_hid, inh_hid },
90  { 0x93, M680X_INS_CPD, dir_hid, inh_hid },
91  { 0xa3, M680X_INS_CPD, idxX_hid, inh_hid },
92  { 0xac, M680X_INS_CPY, idxX_hid, inh_hid },
93  { 0xb3, M680X_INS_CPD, ext_hid, inh_hid },
94  { 0xee, M680X_INS_LDY, idxX_hid, inh_hid },
95  { 0xef, M680X_INS_STY, idxX_hid, inh_hid },
96 };
97 
98 // M68HC11 PAGE4 instructions
99 static const inst_pageX g_m6811_inst_page4_table[] = {
100  { 0xa3, M680X_INS_CPD, idxY_hid, inh_hid },
101  { 0xac, M680X_INS_CPX, idxY_hid, inh_hid },
102  { 0xee, M680X_INS_LDX, idxY_hid, inh_hid },
103  { 0xef, M680X_INS_STX, idxY_hid, inh_hid },
104 };
105 
@ M680X_INS_CMPA
Definition: m680x.h:265
@ M680X_INS_ASR
Definition: m680x.h:203
@ M680X_INS_BRSET
Definition: m680x.h:240
@ M680X_INS_ANDA
Definition: m680x.h:194
@ M680X_INS_EORA
Definition: m680x.h:321
@ M680X_INS_INC
Definition: m680x.h:333
@ M680X_INS_FDIV
Definition: m680x.h:327
@ M680X_INS_ADCB
Definition: m680x.h:179
@ M680X_INS_IDIV
Definition: m680x.h:330
@ M680X_INS_ORAB
M6800/1/2/3.
Definition: m680x.h:414
@ M680X_INS_BSET
Definition: m680x.h:243
@ M680X_INS_NEG
Definition: m680x.h:404
@ M680X_INS_STS
Definition: m680x.h:482
@ M680X_INS_LDAB
M6800/1/2/3.
Definition: m680x.h:365
@ M680X_INS_SUBB
Definition: m680x.h:489
@ M680X_INS_LDX
Definition: m680x.h:377
@ M680X_INS_TSY
Definition: m680x.h:520
@ M680X_INS_CLR
Definition: m680x.h:254
@ M680X_INS_XGDX
HD6301.
Definition: m680x.h:528
@ M680X_INS_STAB
M6800/1/2/3.
Definition: m680x.h:473
@ M680X_INS_TYS
Definition: m680x.h:523
@ M680X_INS_JMP
Definition: m680x.h:344
@ M680X_INS_SUBD
Definition: m680x.h:490
@ M680X_INS_COM
Definition: m680x.h:276
@ M680X_INS_CPY
Definition: m680x.h:288
@ M680X_INS_PULY
Definition: m680x.h:440
@ M680X_INS_CPD
Definition: m680x.h:284
@ M680X_INS_ROR
Definition: m680x.h:449
@ M680X_INS_ADCA
Definition: m680x.h:178
@ M680X_INS_LDY
Definition: m680x.h:378
@ M680X_INS_ORAA
M6800/1/2/3.
Definition: m680x.h:413
@ M680X_INS_LSR
Definition: m680x.h:388
@ M680X_INS_BRCLR
Definition: m680x.h:239
@ M680X_INS_TST
Definition: m680x.h:511
@ M680X_INS_PSHY
Definition: m680x.h:429
@ M680X_INS_TEST
Definition: m680x.h:506
@ M680X_INS_SBCA
Definition: m680x.h:461
@ M680X_INS_SBCB
Definition: m680x.h:462
@ M680X_INS_BCLR
Definition: m680x.h:210
@ M680X_INS_LDD
Definition: m680x.h:368
@ M680X_INS_ABY
Definition: m680x.h:176
@ M680X_INS_LDS
Definition: m680x.h:374
@ M680X_INS_XGDY
Definition: m680x.h:529
@ M680X_INS_EORB
Definition: m680x.h:322
@ M680X_INS_ROL
Definition: m680x.h:443
@ M680X_INS_DEY
Definition: m680x.h:306
@ M680X_INS_SUBA
Definition: m680x.h:488
@ M680X_INS_STAA
M6800/1/2/3.
Definition: m680x.h:472
@ M680X_INS_ASL
Definition: m680x.h:199
@ M680X_INS_DEC
Definition: m680x.h:296
@ M680X_INS_ADDD
Definition: m680x.h:185
@ M680X_INS_ADDB
Definition: m680x.h:184
@ M680X_INS_ANDB
Definition: m680x.h:195
@ M680X_INS_STD
Definition: m680x.h:476
@ M680X_INS_ADDA
Definition: m680x.h:183
@ M680X_INS_INY
Definition: m680x.h:343
@ M680X_INS_STY
Definition: m680x.h:486
@ M680X_INS_LDAA
M6800/1/2/3.
Definition: m680x.h:364
@ M680X_INS_CMPB
Definition: m680x.h:266
@ M680X_INS_STX
Definition: m680x.h:485
@ M680X_INS_BITB
Definition: m680x.h:227
@ M680X_INS_CPX
M6800/1/2/3.
Definition: m680x.h:287
@ M680X_INS_BITA
Definition: m680x.h:226
@ M680X_INS_STOP
Definition: m680x.h:479
@ M680X_INS_JSR
Definition: m680x.h:345