?? dsmlib.c
字號:
{"PFLUSH", itPflush, 0xf000, 0x3010, 0xffc0, 0xff18, 0x00, 0x00}, {"PFLUSH", itPflush, 0xf000, 0x3800, 0xffc0, 0xff1f, 0x8b, 0x1c}, {"PFLUSH", itPflush, 0xf000, 0x3801, 0xffc0, 0xff1f, 0x8b, 0x1c}, {"PFLUSH", itPflush, 0xf000, 0x3808, 0xffc0, 0xff18, 0x00, 0x00}, {"PFLUSH", itPflush, 0xf000, 0x3810, 0xffc0, 0xff18, 0x00, 0x00}, {"PMOVEFD", itPmove, 0xf000, 0x4000, 0xffc0, 0xfdcf, 0x9b, 0x1c}, {"PMOVE", itPmove, 0xf000, 0x4100, 0xffc0, 0xfdcf, 0x9b, 0x1c}, {"PMOVEFD", itPmove, 0xf000, 0x4800, 0xffc0, 0xfdcf, 0x9b, 0x1c}, {"PMOVE", itPmove, 0xf000, 0x4900, 0xffc0, 0xfdcf, 0x9b, 0x1c}, {"PMOVEFD", itPmove, 0xf000, 0x4c00, 0xffc0, 0xfdcf, 0x9b, 0x1c}, {"PMOVE", itPmove, 0xf000, 0x4d00, 0xffc0, 0xfdcf, 0x9b, 0x1c}, {"PMOVE", itPmove, 0xf000, 0x6000, 0xffc0, 0xfdff, 0x9b, 0x1c}, {"PTESTW", itPtest, 0xf000, 0x8000, 0xffc0, 0xe21f, 0x8b, 0x1c}, {"PTESTW", itPtest, 0xf000, 0x8001, 0xffc0, 0xe21f, 0x8b, 0x1c}, {"PTESTW", itPtest, 0xf000, 0x8008, 0xffc0, 0xe218, 0x8b, 0x1c}, {"PTESTW", itPtest, 0xf000, 0x8010, 0xffc0, 0xe218, 0x8b, 0x1c}, {"PTESTR", itPtest, 0xf000, 0x8200, 0xffc0, 0xe21f, 0x8b, 0x1c}, {"PTESTR", itPtest, 0xf000, 0x8201, 0xffc0, 0xe21f, 0x8b, 0x1c}, {"PTESTR", itPtest, 0xf000, 0x8208, 0xffc0, 0xe218, 0x8b, 0x1c}, {"PTESTR", itPtest, 0xf000, 0x8210, 0xffc0, 0xe218, 0x8b, 0x1c},#endif /* CPU == MC68020 || CPU == MC68030) */ /* 20 bit mask */ {"DIVUL", itDivL, 0x4c40, 0x0000, 0xffc0, 0x8ff8, 0x02, 0x00}, {"DIVU", itDivL, 0x4c40, 0x0400, 0xffc0, 0x8ff8, 0x02, 0x00}, {"DIVSL", itDivL, 0x4c40, 0x0800, 0xffc0, 0x8ff8, 0x02, 0x00}, {"DIVS", itDivL, 0x4c40, 0x0c00, 0xffc0, 0x8ff8, 0x02, 0x00}, {"cpDBcc", itCpDbcc, 0xf048, 0x0000, 0xf1f8, 0xffc0, 0x00, 0x00}, {"cpTRAP", itCpTrapcc,0xf078, 0x0000, 0xf1f8, 0xffc0, 0x00, 0x00}, /* 19 bit mask */ {"MULS", itDivL, 0x4c00, 0x0800, 0xffc0, 0x8bf8, 0x02, 0x00}, {"MULU", itDivL, 0x4c00, 0x0000, 0xffc0, 0x8bf8, 0x02, 0x00}, /* 18 bit mask */ {"BTST", itStatBit, 0x0800,0x0000, 0xffc0, 0xff00, 0x82, 0x10}, {"BCHG", itStatBit, 0x0840,0x0000, 0xffc0, 0xff00, 0x82, 0x1c}, {"BCLR", itStatBit, 0x0880,0x0000, 0xffc0, 0xff00, 0x82, 0x1c}, {"CALLM", itCallm, 0x06c0,0x0000, 0xffc0, 0xff00, 0x9b, 0x10}, /* 17 bit mask */ {"BSET", itStatBit, 0x08c0, 0x0000, 0xffc0, 0xfe00, 0x82, 0x1c}, /* 16 bit mask */ {"ANDI", itImmTSR, 0x027c, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, /* to SR */ {"ORI", itImmTSR, 0x007c, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, /* to SR */ {"EORI", itImmTSR, 0x0a7c, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, /* to SR */ {"ILL", itComplete, 0x4afc, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"RESET", itComplete, 0x4e70, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"NOP", itComplete, 0x4e71, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"STOP", itStop, 0x4e72, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"RTE", itComplete, 0x4e73, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"RTD", itRTD, 0x4e74, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"RTS", itComplete, 0x4e75, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"TRAPV", itComplete, 0x4e76, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, {"RTR", itComplete, 0x4e77, 0x0000, 0xffff, 0x0000, 0x00, 0x00}, /* 15 bit mask */ {"MOVEC", itMovec, 0x4e7a, 0x0000, 0xfffe, 0x0000, 0x00, 0x00}, /* 14 bit mask */ {"BFCHG", itBfchg, 0xeac0, 0x0000, 0xffc0, 0xf000, 0x9a, 0x1c}, {"BFCLR", itBfchg, 0xecc0, 0x0000, 0xffc0, 0xf000, 0x9a, 0x1c}, {"BFSET", itBfchg, 0xeec0, 0x0000, 0xffc0, 0xf000, 0x9a, 0x1c}, /* 13 bit mask */ {"LINK", itLinkL, 0x4808, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"SWAP", itSwap, 0x4840, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"BKPT", itBkpt, 0x4848, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"EXT", itExt, 0x4880, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"EXT", itExt, 0x48c0, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"EXTB", itExt, 0x49c0, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"LINK", itLink, 0x4e50, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"UNLK", itUnlk, 0x4e58, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBT", itDb, 0x50c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPT", itTrapcc, 0x50f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBF", itDb, 0x51c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPF", itTrapcc, 0x51f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBHI", itDb, 0x52c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPHI", itTrapcc, 0x52f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBLS", itDb, 0x53c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPLS", itTrapcc, 0x53f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBCC", itDb, 0x54c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPCC", itTrapcc, 0x54f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBCS", itDb, 0x55c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPCS", itTrapcc, 0x55f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBNE", itDb, 0x56c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPNE", itTrapcc, 0x56f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBEQ", itDb, 0x57c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPEQ", itTrapcc, 0x57f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBVC", itDb, 0x58c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPVC", itTrapcc, 0x58f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBVS", itDb, 0x59c8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPVS", itTrapcc, 0x59f8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBPL", itDb, 0x5ac8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPPL", itTrapcc, 0x5af8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBMI", itDb, 0x5bc8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPMI", itTrapcc, 0x5bf8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBGE", itDb, 0x5cc8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPGE", itTrapcc, 0x5cf8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBLT", itDb, 0x5dc8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPLT", itTrapcc, 0x5df8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBGT", itDb, 0x5ec8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPGT", itTrapcc, 0x5ef8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"DBLE", itDb, 0x5fc8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"TRAPLE", itTrapcc, 0x5ff8, 0x0000, 0xfff8, 0x0000, 0x00, 0x00}, {"BFTST", itBfchg, 0xe8c0, 0x0000, 0xffc0, 0xe000, 0x9a, 0x10}, /* 12 bit mask */ {"RTM", itRtm, 0x06c0, 0x0000, 0xfff0, 0x0000, 0x00, 0x00}, {"TRAP", itTrap, 0x4e40, 0x0000, 0xfff0, 0x0000, 0x00, 0x00}, {"MOVE", itMoveUSP, 0x4e60, 0x0000, 0xfff0, 0x0000, 0x00, 0x00}, /* USP */ /* 11 bit mask */ {"BFEXTU", itBfext, 0xe9c0, 0x0000, 0xffc0, 0x8000, 0x9a, 0x10}, {"BFEXTS", itBfext, 0xebc0, 0x0000, 0xffc0, 0x8000, 0x9a, 0x10}, {"BFFFO", itBfext, 0xedc0, 0x0000, 0xffc0, 0x8000, 0x9a, 0x10}, {"BFINS", itBfins, 0xefc0, 0x0000, 0xffc0, 0x8000, 0x9a, 0x1c}, /* 10 bit mask */ {"ORI", itImm, 0x0000, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ORI", itImm, 0x0040, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ORI", itImm, 0x0080, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ANDI", itImm, 0x0200, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ANDI", itImm, 0x0240, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ANDI", itImm, 0x0280, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SUBI", itImm, 0x0400, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SUBI", itImm, 0x0440, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SUBI", itImm, 0x0480, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ADDI", itImm, 0x0600, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ADDI", itImm, 0x0640, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ADDI", itImm, 0x0680, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"EORI", itImm, 0x0a00, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"EORI", itImm, 0x0a40, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"EORI", itImm, 0x0a80, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"CMPI", itImm, 0x0c00, 0x0000, 0xffc0, 0x0000, 0x82, 0x10}, {"CMPI", itImm, 0x0c40, 0x0000, 0xffc0, 0x0000, 0x82, 0x10}, {"CMPI", itImm, 0x0c80, 0x0000, 0xffc0, 0x0000, 0x82, 0x10}, {"MOVE", itMoveFSR, 0x40c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, /* from SR*/ {"MOVE", itMoveFCCR, 0x42c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, /*from CCR*/ {"MOVE", itMoveCCR, 0x44c0, 0x0000, 0xffc0, 0x0000, 0x02, 0x00}, /* to CCR */ {"MOVE", itMoveTSR, 0x46c0, 0x0000, 0xffc0, 0x0000, 0x02, 0x00}, /* to SR */ {"NBCD", itNbcd, 0x4800, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"PEA", itNbcd, 0x4840, 0x0000, 0xffc0, 0x0000, 0x9b, 0x10}, {"TAS", itNbcd, 0x4ac0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"JSR", itNbcd, 0x4e80, 0x0000, 0xffc0, 0x0000, 0x9b, 0x10}, {"JMP", itNbcd, 0x4ec0, 0x0000, 0xffc0, 0x0000, 0x9b, 0x10}, {"ST", itScc, 0x50c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SF", itScc, 0x51c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SHI", itScc, 0x52c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SLS", itScc, 0x53c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SCC", itScc, 0x54c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SCS", itScc, 0x55c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SNE", itScc, 0x56c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SEQ", itScc, 0x57c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SVC", itScc, 0x58c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SVS", itScc, 0x59c0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SPL", itScc, 0x5ac0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SMI", itScc, 0x5bc0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SGE", itScc, 0x5cc0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SLT", itScc, 0x5dc0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SGT", itScc, 0x5ec0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"SLE", itScc, 0x5fc0, 0x0000, 0xffc0, 0x0000, 0x82, 0x1c}, {"ASR", itMemShift, 0xe0c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, {"ASL", itMemShift, 0xe1c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1a}, {"LSR", itMemShift, 0xe2c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, {"LSL", itMemShift, 0xe3c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, {"ROXR", itMemShift, 0xe4c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, {"ROXL", itMemShift, 0xe5c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, {"ROR", itMemShift, 0xe6c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, {"ROL", itMemShift, 0xe7c0, 0x0000, 0xffc0, 0x0000, 0x83, 0x1c}, /* 10 bit mask */ {"CMPM", itCmpm, 0xb108, 0x0000, 0xf1f8, 0x0000, 0x00, 0x00}, {"CMPM", itCmpm, 0xb148, 0x0000, 0xf1f8, 0x0000, 0x00, 0x00}, {"CMPM", itCmpm, 0xb188, 0x0000, 0xf1f8, 0x0000, 0x00, 0x00}, {"EXG", itExg, 0xc140, 0x0000, 0xf1f8, 0x0000, 0x00, 0x00}, {"EXG", itExg, 0xc148, 0x0000, 0xf1f8, 0x0000, 0x00, 0x00}, {"EXG", itExg, 0xc188, 0x0000, 0xf1f8, 0x0000, 0x00, 0x00}, /* 9 bit mask */ {"MOVEM", itMovem, 0x4880, 0x0000, 0xff80, 0x0000, 0x8b, 0x1c}, {"MOVEM", itMovem, 0x4c80, 0x0000, 0xff80, 0x0000, 0x93, 0x10}, {"SBCD", itBcd, 0x8100, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"PACK", itPack, 0x8140, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"UNPK", itPack, 0x8180, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"ABCD", itBcd, 0xc100, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"SUBX", itX, 0x9100, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"SUBX", itX, 0x9140, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"SUBX", itX, 0x9180, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"ADDX", itX, 0xd100, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"ADDX", itX, 0xd140, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, {"ADDX", itX, 0xd180, 0x0000, 0xf1f0, 0x0000, 0x00, 0x00}, /* 8 bit mask */ {"NEGX", itNegx, 0x4000, 0x0000, 0xff00, 0x0000, 0x82, 0x1c}, {"CLR", itNegx, 0x4200, 0x0000, 0xff00, 0x0000, 0x82, 0x1c}, {"NEG", itNegx, 0x4400, 0x0000, 0xff00, 0x0000, 0x82, 0x1c}, {"NOT", itNegx, 0x4600, 0x0000, 0xff00, 0x0000, 0x82, 0x1c}, {"TST", itNegx, 0x4a00, 0x0000, 0xff00, 0x0000, 0x80, 0x10}, {"BRA", itBra, 0x6000, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BSR", itBra, 0x6100, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BHI", itBra, 0x6200, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BLS", itBra, 0x6300, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BCC", itBra, 0x6400, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BCS", itBra, 0x6500, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BNE", itBra, 0x6600, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BEQ", itBra, 0x6700, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BVC", itBra, 0x6800, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BVS", itBra, 0x6900, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BPL", itBra, 0x6a00, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BMI", itBra, 0x6b00, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BGE", itBra, 0x6c00, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BLT", itBra, 0x6d00, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BGT", itBra, 0x6e00, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, {"BLE", itBra, 0x6f00, 0x0000, 0xff00, 0x0000, 0x00, 0x00}, /* 7 bit mask */ {"BTST", itDynBit, 0x0100, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"BCHG", itDynBit, 0x0140, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"BCLR", itDynBit, 0x0180, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"BSET", itDynBit, 0x01c0, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"CHK", itChk, 0x4100, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"CHK", itChk, 0x4180, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"LEA", itLea, 0x41c0, 0x0000, 0xf1c0, 0x0000, 0x9b, 0x10}, {"DIVU", itDivW, 0x80c0, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"DIVS", itDivW, 0x81c0, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"SUB", itOr, 0x9000, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"SUB", itOr, 0x9040, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"SUB", itOr, 0x9080, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"SUBA", itAdda, 0x90c0, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"SUB", itOr, 0x9100, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"SUB", itOr, 0x9140, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"SUB", itOr, 0x9180, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"SUBA", itAdda, 0x91c0, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"CMP", itOr, 0xb000, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"CMP", itOr, 0xb040, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"CMP", itOr, 0xb080, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"CMPA", itAdda, 0xb0c0, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"CMPA", itAdda, 0xb1c0, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"MULU", itDivW, 0xc0c0, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"MULS", itDivW, 0xc1c0, 0x0000, 0xf1c0, 0x0000, 0x02, 0x00}, {"ADD", itOr, 0xd000, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"ADD", itOr, 0xd040, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"ADD", itOr, 0xd080, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"ADDA", itAdda, 0xd0c0, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, {"ADD", itOr, 0xd100, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"ADD", itOr, 0xd140, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"ADD", itOr, 0xd180, 0x0000, 0xf1c0, 0x0000, 0x82, 0x1c}, {"ADDA", itAdda, 0xd1c0, 0x0000, 0xf1c0, 0x0000, 0x00, 0x00}, /* 7 bit mask */ {"ASR", itRegShift, 0xe000,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"LSR", itRegShift, 0xe008,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"ROXR", itRegShift, 0xe010,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"ROR", itRegShift, 0xe018,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"ASL", itRegShift, 0xe100,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"LSL", itRegShift, 0xe108,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"ROXL", itRegShift, 0xe110,0x0000, 0xf118, 0x0000, 0x00, 0x00}, {"ROL", itRegShift, 0xe118,0x0000, 0xf118, 0x0000, 0x00, 0x00}, /* 7 bit mask */ {"MOVEP", itMovep, 0x0080, 0x0000, 0xf038, 0x0000, 0x00, 0x00}, /* 6 bit mask */ {"cpBcc", itCpBcc, 0xf080, 0x0000, 0xf180, 0x0000, 0x00, 0x00}, /* 5 bit mask */ {"MOVEA", itMoveA, 0x0040, 0x0000, 0xc1c0, 0x0000, 0x00, 0x00}, /* 5 bit mask */ {"ADDQ", itQuick, 0x5000, 0x0000, 0xf100, 0x0000, 0x80, 0x1c}, {"SUBQ", itQuick, 0x5100, 0x0000, 0xf100, 0x0000, 0x80, 0x1c}, {"MOVEQ", itMoveq, 0x7000, 0x0000, 0xf100, 0x0000, 0x00, 0x00}, /* 4 bit mask */ {"MOVE", itMoveB, 0x1000, 0x0000, 0xf000, 0x0000, 0x82, 0x1c}, {"MOVE", itMoveL, 0x2000, 0x0000, 0xf000, 0x0000, 0x82, 0x1c}, {"MOVE", itMoveW, 0x3000, 0x0000, 0xf000, 0x0000, 0x82, 0x1c}, {"OR", itOr, 0x8000, 0x0000, 0xf100, 0x0000, 0x02, 0x00}, {"OR", itOr, 0x8100, 0x0000, 0xf100, 0x0000, 0x83, 0x1c}, {"EOR", itOr, 0xb000, 0x0000, 0xf000, 0x0000, 0x82, 0x1c}, {"AND", itOr, 0xc000, 0x0000, 0xf100, 0x0000, 0x02, 0x00}, {"AND", itOr, 0xc100, 0x0000, 0xf100, 0x0000, 0x83, 0x1c}, {"", 0, NULL, NULL, NULL, NULL, NULL, NULL} };/********************************************************************************* dsmFind - disassemble one instruction** This routine figures out which instruction is pointed to by binInst,* and returns a pointer to the INST which describes it.** RETURNS: pointer to instruction or NULL if unknown instruction.*/LOCAL INST *dsmFind ( USHORT binInst [] ) { FAST INST *iPtr; UINT8 instMode; UINT8 instReg; /* Find out which instruction it is */ for (iPtr = &inst [0]; iPtr->mask1 != NULL; iPtr++) if ((binInst [0] & iPtr->mask1) == iPtr->op1 && (binInst[1] & iPtr->mask2) == iPtr->op2) { /* get address mode */ if (strcmp (iPtr->name, "MOVE") == 0) { instMode = (binInst[0] & 0x01c0) >> 6; instReg = (binInst[0] & 0x0e00) >> 9; } else { instMode = (binInst[0] & 0x0038) >> 3; instReg = binInst [0] & 0x0007; } /* check effective address mode */ if (((1 << instMode ) & iPtr->modemask) == 0x00) { return (iPtr); } if ((((1 << instMode ) & iPtr->modemask) == 0x80) && (((1 << instReg) & iPtr->regmask) == 0x00)) { return (iPtr); } } /* If we're here, we couldn't find it */ errnoSet (S_dsmLib_UNKNOWN_INSTRUCTION); return (NULL); }/********************************************************************************* dsmPrint - print a disassembled instruction** This routine prints an instruction in disassembled form. It takes* as input a pointer to the instruction, a pointer to the INST* that describes it (as found by dsmFind()), and an address with which to
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -