-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmn101e.cmdset
243 lines (216 loc) · 7.62 KB
/
mn101e.cmdset
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# > = changed
# + = relative memory
# ! = stop
# % = branch
# ^ = call
# * = memory
# @<n> - op fetch order
# Special cases listed first: MOV Dn,Dm becomes MOV Imm8,Dm when Dm==Dn
MOV, IMM8,>D_DST, 1010 0000
MOV, IMM8,>D_DST, 1010 0101
MOV, IMM8,>D_DST, 1010 1010
MOV, IMM8,>D_DST, 1010 1111
MOV, D_SRC, >D_DST, 1010 DnDm
MOV, D_DST,>REG_PSW, 0010 1001 01Dn
MOV, REG_PSW,>D_DST, 0010 0001 01Dm
MOV, *A_8,>D_DST, 0100 1ADm
MOV, IMM8_S,+A_8,>D_DST, 0110 1ADm #<d8. ...>
MOV, IMM16,+A_8,>D_DST, 0010 0110 1ADm #<d16 .... .... ...>
MOV, IMM4,+REG_SP,>D_DST, 0110 01Dm #<d4>
MOV, IMM8,+REG_SP,>D_DST, 0010 0110 01Dm #<d8. ...>
MOV, IMM16,+REG_SP,>D_DST, 0010 0110 00Dm #<d16 .... .... ...>
MOV, *IO8,>D_DST, 0110 00Dm #<io8 ...>
MOV, *IMM8,>D_DST, 0100 01Dm #<abs 8..>
MOV, *IMM12,>D_DST, 0100 00Dm #<abs 12.. ...>
MOV, *IMM16,>D_DST, 0010 1100 00Dm #<abs 16.. .... ...>
MOV, D_DST,>*A_8, 0101 1aDn
MOV, D_DST,IMM8_S,>+A_8, 0111 1aDn #<d8. ...>
MOV, D_DST,IMM16,>+A_8, 0010 0111 1aDn #<d16 .... .... ...>
MOV, D_DST,IMM4,>+REG_SP, 0111 01Dn #<d4>
MOV, D_DST,IMM8,>+REG_SP, 0010 0111 01Dn #<d8. ...> >3
MOV, D_DST,IMM16,>+REG_SP, 0010 0111 00Dn #<d16 .... .... ...>
MOV, D_DST,>*IO8, 0111 00Dn #<io8 ...>
MOV, D_DST,>*IMM8, 0101 01Dn #<abs 8..>
MOV, D_DST,>*IMM12, 0101 00Dn #<abs 12.. ...>
MOV, D_DST,>*IMM16, 0010 1101 00Dn #<abs 16.. .... ...>
MOV, IMM8@2,>*IO8@1, 0000 0010 #<io8 ...> <#8. ...>
MOV, IMM8@2,>*IMM8@1, 0001 0100
MOV, IMM8@2,>*IMM12@1, 0001 0101 #<abs 12.. ...> <#8. ...>
MOV, IMM8@2,>*IMM16@1, 0011 1101 1001 #<abs 16.. .... ...> <#8. ...>
MOV, D_DST,>*REG_HA, 1101 00Dn
MOVW, *A_SRC, >DW_DST, 1110 00Ad
MOVW, *A_SRC, >A_DST, 0010 1110 10Aa
MOVW, IMM4, +REG_SP, >DW_DST, 1110 011d #<d4>
MOVW, IMM4, +REG_SP, >A_DST, 1110 010a #<d4>
MOVW, IMM8, +REG_SP, >DW_DST, 0010 1110 011d #<d8. ...>
MOVW, IMM8, +REG_SP, >A_DST, 0010 1110 010a #<d8. ...> *3
MOVW, IMM16, +REG_SP, >DW_DST, 0010 1110 001d #<d16 .... .... ...>
MOVW, IMM16, +REG_SP, >A_DST, 0010 1110 000a #<d16 .... .... ...>
MOVW, *IMM8, >DW_DST, 1100 011d #<abs 8..>
MOVW, *IMM8, >A_DST, 1100 010a #<abs 8..>
MOVW, *IMM16, >DW_DST, 0010 1100 011d #<abs 16.. .... ...>
MOVW, *IMM16, >A_DST, 0010 1100 010a #<abs 16.. .... ...>
MOVW, DW_DST, >*A_SRC, 1111 00aD
MOVW, A_DST, >*A_SRC, 0010 1111 10aA
MOVW, DW_DST, IMM4, >+REG_SP, 1111 011D
MOVW, A_DST, IMM4, >+REG_SP, 1111 010A
MOVW, DW_DST, IMM8, >+REG_SP, 0010 1111 011D
MOVW, A_DST, IMM8, >+REG_SP, 0010 1111 010A
MOVW, DW_DST, IMM16, >+REG_SP, 0010 1111 001D
MOVW, A_DST, IMM16, >+REG_SP, 0010 1111 000A
MOVW, DW_DST, >*IMM8, 1101 011D
MOVW, A_DST, >*IMM8, 1101 010A
MOVW, DW_DST, >*IMM16, 0010 1101 011D
MOVW, A_DST, >*IMM16, 0010 1101 010A
MOVW, DW_DST, >*REG_HA, 1001 010D
MOVW, A_DST, >*REG_HA, 1001 011A
MOVW, IMM8_S, >DW_DST, 0000 110d
MOVW, IMM8, >A_DST, 0000 111a
MOVW, IMM16, >DW_DST, 1100 111d
MOVW, IMM16, >A_DST, 1101 111a
MOVW, REG_SP, >A_DST, 0010 0000 100a
MOVW, A_DST, >REG_SP, 0010 0000 101A
MOVW, DW_SRC, >DW_DST, 0010 1000 00Dd
MOVW, DW_SRC, >A_DST, 0010 0100 11Da
MOVW, A_SRC, >DW_DST, 0010 1100 11Ad
MOVW, A_SRC, >A_DST, 0010 0000 00Aa
PUSH, D_DST, 1111 10Dn
PUSH, A_DST, 0001 011A
POP, D_DST, 1110 10Dn
POP, A_DST, 0000 011A
EXT, D0_DW_DST, >DW_DST, 0010 1001 000d
ADD, D_SRC, >D_DST, 0011 0011 DnDm
ADD, IMM4_S, >D_DST, 1000 00Dm
ADD, IMM8, >D_DST, 0000 10Dm
ADDC, D_SRC, >D_DST, 0011 1011 DnDm
ADDW, DW_SRC, >DW_DST, 0010 0101 00Dd
ADDW, DW_SRC, >A_DST, 0010 0101 10Da
ADDW, IMM4_S, >A_DST, 1110 110a
ADDW, IMM8_S, >A_DST, 0010 1110 110a
ADDW, IMM16, >A_DST, 0010 0101 011a
ADDW, IMM4_S, >REG_SP, 1111 1101
ADDW, IMM8_S, >REG_SP, 1111 1100
ADDW, IMM16, >REG_SP, 0010 1111 1100
ADDW, IMM16, >DW_DST, 0010 0101 010d
ADDUW, D_DST, >A_8, 0010 1000 1aDn
ADDSW, D_DST, >A_8, 0010 1001 1aDn
# Special cases listed first: SUB Dn,Dm becomes SUB imm8,Dm when Dn==Dm
SUB, IMM8, >D_DST, 0010 1010 0000
SUB, IMM8, >D_DST, 0010 1010 0101
SUB, IMM8, >D_DST, 0010 1010 1010
SUB, IMM8, >D_DST, 0010 1010 1111
SUB, D_SRC, >D_DST, 0010 1010 DnDm
SUB, D_DST, >D_DST, 1000 01Dn
SUBC, D_SRC, >D_DST, 0010 1011 DnDm
SUBW, DW_SRC, >DW_DST, 0010 0100 00Dd
SUBW, DW_SRC, >A_DST, 0010 0100 10Da
SUBW, IMM16, >DW_DST, 0010 0100 010d
SUBW, IMM16, >A_DST, 0010 0100 011a
MULU, >D1_DW_DST, >D0_DW_DST, 0010 1111 111D
DIVU, >DIVU_DN, >DW_DST, 0010 1110 111d
CMP, D_SRC, D_DST, 0011 0010 DnDm
CMP, IMM8, D_DST, 1100 00Dm
CMP, IMM8@2, *IMM8@1, 0000 0100
CMP, IMM8@2, *IMM12@1, 0000 0101
CMP, IMM8@2, *IMM16@1, 0011 1101 1000
CMPW, DW_SRC, DW_DST, 0010 1000 01Dd
CMPW, DW_SRC, A_DST, 0010 0101 11Da
CMPW, A_SRC, A_DST, 0010 0000 01Aa
CMPW, IMM16, DW_DST, 1100 110d
CMPW, IMM16, A_DST, 1101 110a
AND, D_SRC, >D_DST, 0011 0111 DnDm
AND, IMM8, >D_DST, 0001 11Dm
AND, IMM8, >REG_PSW, 0010 1001 0010
OR, D_SRC, >D_DST, 0011 0110 DnDm
OR, IMM8, >D_DST, 0001 10Dm
OR, IMM8, >REG_PSW, 0010 1001 0011
# Special cases listed first: XOR Dn,Dm becomes XOR imm8,Dm when Dn==Dm
XOR, IMM8, >D_DST, 0011 1010 0000
XOR, IMM8, >D_DST, 0011 1010 0101
XOR, IMM8, >D_DST, 0011 1010 1010
XOR, IMM8, >D_DST, 0011 1010 1111
XOR, D_SRC, >D_DST, 0011 1010 DnDm
NOT, >D_DST, 0010 0010 10Dn
ASR, >D_DST, 0010 0011 10Dn
LSR, >D_DST, 0010 0011 11Dn
ROR, >D_DST, 0010 0010 11Dn
BSET, >*IO8, BITPOS, 0011 1000 0bp.
BSET, >*IMM8, BITPOS, 1011 0bp.
BSET, >*IMM16, BITPOS, 0011 1100 0bp.
BCLR, >*IO8, BITPOS, 0011 1000 1bp.
BCLR, >*IMM8, BITPOS, 1011 1bp.
BCLR, >*IMM16, BITPOS, 0011 1100 1bp.
BTST, IMM8, D_DST, 0010 0000 11Dm
BTST, IMM16, BITPOS, D_DST, 0011 1101 0bp.
BEQ, BRANCH4, 1001 000H
BEQ, BRANCH7, 1000 1010
BEQ, BRANCH11, 1001 1010
BNE, BRANCH4, 1001 001H
BNE, BRANCH7, 1000 1011
BNE, BRANCH11, 1001 1011
BGE, BRANCH7, 1000 1000
BGE, BRANCH11, 1001 1000
BCC, BRANCH7, 1000 1100
BCC, BRANCH11, 1001 1100
BCS, BRANCH7, 1000 1101
BCS, BRANCH11, 1001 1101
BLT, BRANCH7, 1000 1110
BLT, BRANCH11, 1001 1110
BLE, BRANCH7, 1000 1111
BLE, BRANCH11, 1001 1111
BGT, BRANCH7, 0010 0010 0001
BGT, BRANCH11, 0010 0011 0001
BHI, BRANCH7, 0010 0010 0010
BHI, BRANCH11, 0010 0011 0010
BLS, BRANCH7, 0010 0010 0011
BLS, BRANCH11, 0010 0011 0011
BNC, BRANCH7, 0010 0010 0100
BNC, BRANCH11, 0010 0011 0100
BNS, BRANCH7, 0010 0010 0101
BNS, BRANCH11, 0010 0011 0101
BVC, BRANCH7, 0010 0010 0110
BVC, BRANCH11, 0010 0011 0110
BVS, BRANCH7, 0010 0010 0111
BVS, BRANCH11, 0010 0011 0111
BRA, !BRANCH4, 1110 111H
BRA, !BRANCH7, 1000 1001
BRA, !BRANCH11, 1001 1001
CBEQ, IMM8, D_DST, BRANCH7, 1100 10Dm
CBEQ, IMM8, D_DST, BRANCH11, 0010 1100 10Dm
CBEQ, IMM8@2, *IMM8@1, BRANCH7, 0010 1101 1100
CBEQ, IMM8@2, *IMM8@1, BRANCH11, 0010 1101 1101
CBEQ, IMM8@2, *IMM16@1, BRANCH7, 0011 1101 1100
CBEQ, IMM8@2, *IMM16@1, BRANCH11, 0011 1101 1101
CBNE, IMM8, D_DST, BRANCH7, 1101 10Dm
CBNE, IMM8, D_DST, BRANCH11, 0010 1101 10Dm
CBNE, IMM8@2, *IMM8@1, BRANCH7, 0010 1101 1110
CBNE, IMM8@2, *IMM8@1, BRANCH11, 0010 1101 1111
CBNE, IMM8@2, *IMM16@1, BRANCH7, 0011 1101 1110
CBNE, IMM8@2, *IMM16@1, BRANCH11, 0011 1101 1111
TBZ, *IMM8, BITPOS, BRANCH7, 0011 0000 0bp.
TBZ, *IMM8, BITPOS, BRANCH11, 0011 0000 1bp.
TBZ, *IO8, BITPOS, BRANCH7, 0011 0100 0bp.
TBZ, *IO8, BITPOS, BRANCH11, 0011 0100 1bp.
TBZ, *IMM16, BITPOS, BRANCH7, 0011 1110 0bp.
TBZ, *IMM16, BITPOS, BRANCH11, 0011 1110 1bp.
TBNZ, *IMM8, BITPOS, BRANCH7, 0011 0001 0bp.
TBNZ, *IMM8, BITPOS, BRANCH11, 0011 0001 1bp.
TBNZ, *IO8, BITPOS, BRANCH7, 0011 0101 0bp.
TBNZ, *IO8, BITPOS, BRANCH11, 0011 0101 1bp.
TBNZ, *IMM16, BITPOS, BRANCH7, 0011 1111 0bp.
TBNZ, *IMM16, BITPOS, BRANCH11, 0011 1111 1bp.
JMP, !%*A_SRC, 0010 0001 00A0
JMP, !BRANCH18, 0011 1001 0aaH
JMP, !BRANCH20, 0011 1101 1010
JSR, ^*A_SRC, 0010 0001 00A1
JSR, CALL12, 0001 000H
JSR, CALL16, 0001 001H
JSR, CALL18, 0011 1001 1aaH
JSR, CALL20, 0011 1101 1011
JSRV, *CALLTBL4, 1111 1110
NOP, 0000 0000
RTS, !, 0000 0001
RTI, !, 0000 0011
REP, REP3, 0010 0001 1rep
BE, 0010 0010 0000
BD, 0010 0011 0000