|
|
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.