|
|
1.1 root 1: % 0: bit 0
2: % 1: bit 1
3: % c: condition code
4: % C: condition codes, except F
5: % f: direction
6: % i: immediate
7: % I: immediate, except 00 and ff
8: % j: immediate 1..8
9: % J: immediate 0..15
10: % k: immediate 0..7
11: % K: immediate 0..63
12: % s: source mode
13: % S: source reg
14: % d: dest mode
15: % D: dest reg
16: % r: reg
17: % z: size
18: %
19: % Actually, a sssSSS may appear as a destination, and
20: % vice versa. The only difference between sssSSS and
21: % dddDDD are the valid addressing modes. There is
22: % no match for immediate and pc-rel. addressing modes
23: % in case of dddDDD.
24: %
25: % Arp: --> -(Ar)
26: % ArP: --> (Ar)+
27: %
28: % Fields on a line:
29: % 16 chars bitpattern :
30: % CPU level / privildge level :
31: % CPU level 0: 68000
32: % 1: 68010
33: % 2: 68020
34: % privilege level 0: not privileged
35: % 1: unprivileged only on 68000 (check regs.s)
36: % 2: privileged (check regs.s)
37: % 3: privileged if size == word (check regs.s)
38: % Flags set by instruction: XNZVC :
39: % Flags used by instruction: XNZVC :
40: % - means flag unaffected / unused
41: % 0 means flag reset
42: % 1 means flag set
43: % ? means programmer was too lazy to check or instruction may trap
44: % + means instruction is conditional branch
45: % everything else means flag set/used
46: % / means instruction is unconditional branch/call
47: % x means flag is unknown and well-behaved programs shouldn't check it
48: % instruction
49: %
50:
51: 0000 0000 0011 1100:00:XNZVC:XNZVC: ORSR.B #1
52: 0000 0000 0111 1100:02:?????:?????: ORSR.W #1
53: 0000 0zz0 11ss sSSS:20:?????:?????: CHK2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]
54: %0000 0zz0 11ss sSSS:20:?????:?????: CMP2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]
55: 0000 0000 zzdd dDDD:00:-NZ00:-----: OR.z #z,d[!Areg]
56: 0000 0010 0011 1100:00:XNZVC:XNZVC: ANDSR.B #1
57: 0000 0010 0111 1100:02:?????:?????: ANDSR.W #1
58: 0000 0010 zzdd dDDD:00:-NZ00:-----: AND.z #z,d[!Areg]
59: 0000 0100 zzdd dDDD:00:XNZVC:-----: SUB.z #z,d[!Areg]
60: 0000 0110 zzdd dDDD:00:XNZVC:-----: ADD.z #z,d[!Areg]
61: 0000 0110 11ss sSSS:20:?????:?????: CALLM s[!Dreg,Areg,Aipi,Apdi,Immd]
62: 0000 0110 11ss sSSS:20:?????:?????: RTM s[Dreg,Areg]
63: 0000 1000 00ss sSSS:00:--Z--:-----: BTST #1,s[!Areg]
64: 0000 1000 01ss sSSS:00:--Z--:-----: BCHG #1,s[!Areg,Immd]
65: 0000 1000 10ss sSSS:00:--Z--:-----: BCLR #1,s[!Areg,Immd]
66: 0000 1000 11ss sSSS:00:--Z--:-----: BSET #1,s[!Areg,Immd]
67: 0000 1010 0011 1100:00:XNZVC:XNZVC: EORSR.B #1
68: 0000 1010 0111 1100:02:?????:?????: EORSR.W #1
69: 0000 1010 zzdd dDDD:00:-NZ00:-----: EOR.z #z,d[!Areg]
70: 0000 1100 zzss sSSS:00:-NZVC:-----: CMP.z #z,s[!Areg,Immd]
71:
72: 0000 1010 11ss sSSS:20:?????:?????: CAS.B #1,s[!Dreg,Areg,Immd,PC8r,PC16]
73: 0000 1100 11ss sSSS:20:?????:?????: CAS.W #1,s[!Dreg,Areg,Immd,PC8r,PC16]
74: 0000 1100 1111 1100:20:?????:?????: CAS2.W #2
75: 0000 1110 zzss sSSS:22:?????:?????: MOVES.z #1,s[!Dreg,Areg,Immd,PC8r,PC16]
76: 0000 1110 11ss sSSS:20:?????:?????: CAS.L #1,s[!Dreg,Areg,Immd,PC8r,PC16]
77: 0000 1110 1111 1100:20:?????:?????: CAS2.L #2
78:
79: 0000 rrr1 00dd dDDD:00:-----:-----: MVPMR.W d[Areg-Ad16],Dr
80: 0000 rrr1 01dd dDDD:00:-----:-----: MVPMR.L d[Areg-Ad16],Dr
81: 0000 rrr1 10dd dDDD:00:-----:-----: MVPRM.W Dr,d[Areg-Ad16]
82: 0000 rrr1 11dd dDDD:00:-----:-----: MVPRM.L Dr,d[Areg-Ad16]
83: 0000 rrr1 00ss sSSS:00:--Z--:-----: BTST Dr,s[!Areg]
84: 0000 rrr1 01ss sSSS:00:--Z--:-----: BCHG Dr,s[!Areg,Immd]
85: 0000 rrr1 10ss sSSS:00:--Z--:-----: BCLR Dr,s[!Areg,Immd]
86: 0000 rrr1 11ss sSSS:00:--Z--:-----: BSET Dr,s[!Areg,Immd]
87:
88: 0001 DDDd ddss sSSS:00:-NZ00:-----: MOVE.B s,d[!Areg]
89: 0010 DDDd ddss sSSS:00:-----:-----: MOVEA.L s,d[Areg]
90: 0010 DDDd ddss sSSS:00:-NZ00:-----: MOVE.L s,d[!Areg]
91: 0011 DDDd ddss sSSS:00:-----:-----: MOVEA.W s,d[Areg]
92: 0011 DDDd ddss sSSS:00:-NZ00:-----: MOVE.W s,d[!Areg]
93:
94: 0100 0000 zzdd dDDD:00:XxZxC:-----: NEGX.z d[!Areg]
95: 0100 0000 11dd dDDD:01:?????:?????: MVSR2.W d[!Areg]
96: 0100 0010 zzdd dDDD:00:-0100:-----: CLR.z d[!Areg]
97: 0100 0010 11dd dDDD:10:?????:?????: MVSR2.B d[!Areg]
98: 0100 0100 zzdd dDDD:00:XNZVC:-----: NEG.z d[!Areg]
99: 0100 0100 11ss sSSS:00:XNZVC:-----: MV2SR.B s[!Areg]
100: 0100 0110 zzdd dDDD:00:-NZ00:-----: NOT.z d[!Areg]
101: 0100 0110 11ss sSSS:02:?????:?????: MV2SR.W s[!Areg]
102: 0100 1000 0000 1rrr:20:-----:-----: LINK.L Ar,#2
103: 0100 1000 00dd dDDD:00:X?Z?C:X-Z--: NBCD.B d[!Areg]
104: 0100 1000 0100 1kkk:20:?????:?????: BKPT #k
105: 0100 1000 01ss sSSS:00:-NZ00:-----: SWAP.W s[Dreg]
106: 0100 1000 01ss sSSS:00:-----:-----: PEA.L s[!Dreg,Areg,Aipi,Apdi,Immd]
107: 0100 1000 10dd dDDD:00:-NZ00:-----: EXT.W d[Dreg]
108: 0100 1000 10dd dDDD:00:-----:-----: MVMLE.W #1,d[!Dreg,Areg,Aipi]
109: 0100 1000 11dd dDDD:00:-NZ00:-----: EXT.L d[Dreg]
110: 0100 1000 11dd dDDD:00:-----:-----: MVMLE.L #1,d[!Dreg,Areg,Aipi]
111: 0100 1001 11dd dDDD:00:-NZ00:-----: EXT.B d[Dreg]
112: 0100 1010 zzss sSSS:00:-NZ00:-----: TST.z s
113: 0100 1010 11dd dDDD:00:?????:?????: TAS.B d[!Areg]
114: 0100 1010 1111 1100:00:?????:?????: ILLEGAL
115: 0100 1100 00ss sSSS:20:-NZVC:-----: MULL.L #1,s[!Areg]
116: 0100 1100 01ss sSSS:20:?????:?????: DIVL.L #1,s[!Areg]
117: 0100 1100 10ss sSSS:00:-----:-----: MVMEL.W #1,s[!Dreg,Areg,Apdi,Immd]
118: 0100 1100 11ss sSSS:00:-----:-----: MVMEL.L #1,s[!Dreg,Areg,Apdi,Immd]
119: 0100 1110 0100 JJJJ:00:-----:XNZVC: TRAP #J
120: 0100 1110 0101 0rrr:00:-----:-----: LINK.W Ar,#1
121: 0100 1110 0101 1rrr:00:-----:-----: UNLK.L Ar
122: 0100 1110 0110 0rrr:02:-----:-----: MVR2USP.L Ar
123: 0100 1110 0110 1rrr:02:-----:-----: MVUSP2R.L Ar
124: 0100 1110 0111 0000:02:-----:-----: RESET
125: 0100 1110 0111 0001:00:-----:-----: NOP
126: 0100 1110 0111 0010:02:XNZVC:-----: STOP #1
127: 0100 1110 0111 0011:02:XNZVC:-----: RTE
128: 0100 1110 0111 0100:00:?????:?????: RTD #1
129: 0100 1110 0111 0101:00:-----:-----: RTS
130: 0100 1110 0111 0110:00:-----:XNZVC: TRAPV
131: 0100 1110 0111 0111:00:XNZVC:-----: RTR
132: 0100 1110 0111 1010:12:?????:?????: MOVEC2 #1
133: 0100 1110 0111 1011:12:?????:?????: MOVE2C #1
134: 0100 1110 10ss sSSS:00://///://///: JSR.L s[!Dreg,Areg,Aipi,Apdi,Immd]
135: 0100 rrr1 00ss sSSS:00:?????:?????: CHK.L s[!Areg],Dr
136: 0100 rrr1 10ss sSSS:00:?????:?????: CHK.W s[!Areg],Dr
137: 0100 1110 11ss sSSS:00://///://///: JMP.L s[!Dreg,Areg,Aipi,Apdi,Immd]
138: 0100 rrr1 11ss sSSS:00:-----:-----: LEA.L s[!Dreg,Areg,Aipi,Apdi,Immd],Ar
139:
140: 0101 jjj0 zzdd dDDD:00:-----:-----: ADDA.z #j,d[Areg]
141: 0101 jjj0 zzdd dDDD:00:XNZVC:-----: ADD.z #j,d[!Areg]
142: 0101 jjj1 zzdd dDDD:00:-----:-----: SUBA.z #j,d[Areg]
143: 0101 jjj1 zzdd dDDD:00:XNZVC:-----: SUB.z #j,d[!Areg]
144: 0101 cccc 1100 1rrr:00:-----:+++++: DBcc.W Dr,#1
145: 0101 cccc 11dd dDDD:00:-----:+++++: Scc.B d[!Areg]
146: 0101 cccc 1111 1010:20:?????:?????: TRAPcc #1
147: 0101 cccc 1111 1011:20:?????:?????: TRAPcc #2
148: 0101 cccc 1111 1100:20:?????:?????: TRAPcc
149:
150: % Bxx.L is 68020 only, but setting the CPU level to 2 would give illegal
151: % instruction exceptions when compiling a 68000 only emulation, which isn't
152: % what we want either.
153: 0110 0001 0000 0000:00://///://///: BSR.W #1
154: 0110 0001 IIII IIII:00://///://///: BSR.B #i
155: 0110 0001 1111 1111:00://///://///: BSR.L #2
156: 0110 CCCC 0000 0000:00:-----:+++++: Bcc.W #1
157: 0110 CCCC IIII IIII:00:-----:+++++: Bcc.B #i
158: 0110 CCCC 1111 1111:00:-----:+++++: Bcc.L #2
159:
160: 0111 rrr0 iiii iiii:00:-NZ00:-----: MOVE.L #i,Dr
161:
162: 1000 rrr0 zzss sSSS:00:-NZ00:-----: OR.z s[!Areg],Dr
163: 1000 rrr0 11ss sSSS:00:?????:?????: DIVU.W s[!Areg],Dr
164: 1000 rrr1 00dd dDDD:00:XxZxC:X-Z--: SBCD.B d[Dreg],Dr
165: 1000 rrr1 00dd dDDD:00:XxZxC:X-Z--: SBCD.B d[Areg-Apdi],Arp
166: 1000 rrr1 zzdd dDDD:00:-NZ00:-----: OR.z Dr,d[!Areg,Dreg]
167: 1000 rrr1 01dd dDDD:20:?????:?????: PACK d[Dreg],Dr
168: 1000 rrr1 01dd dDDD:20:?????:?????: PACK d[Areg-Apdi],Arp
169: 1000 rrr1 10dd dDDD:20:?????:?????: UNPK d[Dreg],Dr
170: 1000 rrr1 10dd dDDD:20:?????:?????: UNPK d[Areg-Apdi],Arp
171: 1000 rrr1 11ss sSSS:00:?????:?????: DIVS.W s[!Areg],Dr
172:
173: 1001 rrr0 zzss sSSS:00:XNZVC:-----: SUB.z s,Dr
174: 1001 rrr0 11ss sSSS:00:-----:-----: SUBA.W s,Ar
175: 1001 rrr1 zzdd dDDD:00:XNZVC:X-Z--: SUBX.z d[Dreg],Dr
176: 1001 rrr1 zzdd dDDD:00:XNZVC:X-Z--: SUBX.z d[Areg-Apdi],Arp
177: 1001 rrr1 zzdd dDDD:00:XNZVC:-----: SUB.z Dr,d[!Areg,Dreg]
178: 1001 rrr1 11ss sSSS:00:-----:-----: SUBA.L s,Ar
179:
180: 1011 rrr0 zzss sSSS:00:-NZVC:-----: CMP.z s,Dr
181: 1011 rrr0 11ss sSSS:00:-NZVC:-----: CMPA.W s,Ar
182: 1011 rrr1 11ss sSSS:00:-NZVC:-----: CMPA.L s,Ar
183: 1011 rrr1 zzdd dDDD:00:-NZVC:-----: CMPM.z d[Areg-Aipi],ArP
184: 1011 rrr1 zzdd dDDD:00:-NZ00:-----: EOR.z Dr,d[!Areg]
185:
186: 1100 rrr0 zzss sSSS:00:-NZ00:-----: AND.z s[!Areg],Dr
187: 1100 rrr0 11ss sSSS:00:-NZ00:-----: MULU.W s[!Areg],Dr
188: 1100 rrr1 00dd dDDD:00:XxZxC:X-Z--: ABCD.B d[Dreg],Dr
189: 1100 rrr1 00dd dDDD:00:XxZxC:X-Z--: ABCD.B d[Areg-Apdi],Arp
190: 1100 rrr1 zzdd dDDD:00:-NZ00:-----: AND.z Dr,d[!Areg,Dreg]
191: 1100 rrr1 01dd dDDD:00:-----:-----: EXG.L Dr,d[Dreg]
192: 1100 rrr1 01dd dDDD:00:-----:-----: EXG.L Ar,d[Areg]
193: 1100 rrr1 10dd dDDD:00:-----:-----: EXG.L Dr,d[Areg]
194: 1100 rrr1 11ss sSSS:00:-NZ00:-----: MULS.W s[!Areg],Dr
195:
196: 1101 rrr0 zzss sSSS:00:XNZVC:-----: ADD.z s,Dr
197: 1101 rrr0 11ss sSSS:00:-----:-----: ADDA.W s,Ar
198: 1101 rrr1 zzdd dDDD:00:XNZVC:X-Z--: ADDX.z d[Dreg],Dr
199: 1101 rrr1 zzdd dDDD:00:XNZVC:X-Z--: ADDX.z d[Areg-Apdi],Arp
200: 1101 rrr1 zzdd dDDD:00:XNZVC:-----: ADD.z Dr,d[!Areg,Dreg]
201: 1101 rrr1 11ss sSSS:00:-----:-----: ADDA.L s,Ar
202:
203: 1110 jjjf zz00 0RRR:00:XNZVC:-----: ASf.z #j,DR
204: 1110 jjjf zz00 1RRR:00:XNZ0C:-----: LSf.z #j,DR
205: 1110 jjjf zz01 0RRR:00:XNZ0C:X----: ROXf.z #j,DR
206: 1110 jjjf zz01 1RRR:00:-NZ0C:-----: ROf.z #j,DR
207: 1110 rrrf zz10 0RRR:00:XNZVC:X----: ASf.z Dr,DR
208: 1110 rrrf zz10 1RRR:00:XNZ0C:X----: LSf.z Dr,DR
209: 1110 rrrf zz11 0RRR:00:XNZ0C:X----: ROXf.z Dr,DR
210: 1110 rrrf zz11 1RRR:00:-NZ0C:-----: ROf.z Dr,DR
211: 1110 000f 11dd dDDD:00:XNZVC:-----: ASfW.W d[!Dreg,Areg]
212: 1110 001f 11dd dDDD:00:XNZ0C:-----: LSfW.W d[!Dreg,Areg]
213: 1110 010f 11dd dDDD:00:XNZ0C:X----: ROXfW.W d[!Dreg,Areg]
214: 1110 011f 11dd dDDD:00:-NZ0C:-----: ROfW.W d[!Dreg,Areg]
215:
216: 1110 1000 11ss sSSS:20:?????:?????: BFTST #1,s[!Areg,Apdi,Aipi,Immd]
217: 1110 1001 11ss sSSS:20:?????:?????: BFEXTU #1,s[!Areg,Apdi,Aipi,Immd]
218: 1110 1010 11ss sSSS:20:?????:?????: BFCHG #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
219: 1110 1011 11ss sSSS:20:?????:?????: BFEXTS #1,s[!Areg,Apdi,Aipi,Immd]
220: 1110 1100 11ss sSSS:20:?????:?????: BFCLR #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
221: 1110 1101 11ss sSSS:20:?????:?????: BFFFO #1,s[!Areg,Apdi,Aipi,Immd]
222: 1110 1110 11ss sSSS:20:?????:?????: BFSET #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
223: 1110 1111 11ss sSSS:20:?????:?????: BFINS #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]
224:
225: % floating point co processor
226: 1111 0010 00ss sSSS:20:?????:?????: FPP #1,s
227: 1111 0010 01ss sSSS:20:?????:?????: FDBcc #1,s[Areg-Dreg]
228: 1111 0010 01ss sSSS:20:?????:?????: FScc #1,s[!Areg,Immd,PC8r,PC16]
229: 1111 0010 0111 1010:20:?????:?????: FTRAPcc #1
230: 1111 0010 0111 1011:20:?????:?????: FTRAPcc #2
231: 1111 0010 0111 1100:20:?????:?????: FTRAPcc
232: 1111 0010 10KK KKKK:20:?????:?????: FBcc #K,#1
233: 1111 0010 11KK KKKK:20:?????:?????: FBcc #K,#2
234: 1111 0011 00ss sSSS:22:?????:?????: FSAVE s[!Dreg,Areg,Aipi,Immd,PC8r,PC16]
235: 1111 0011 01ss sSSS:22:?????:?????: FRESTORE s[!Dreg,Areg,Apdi,Immd]
236:
237: 1111 0000 00ss sSSS:20:?????:?????: MMUOP #1,s
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.