📄 disasm.cpp
字号:
// Copyright(C) 1999-2005 LiuTaoTao,bookaa@rorsoft.com
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include "dasm.h"
//**************************************
typedef union MODRM
{
BYTE v;
struct
{
BYTE rm:3;
BYTE reg:3;
BYTE mod:2;
};
} *PMODRM;
typedef union SIB
{
BYTE v;
struct
{
BYTE base:3;
BYTE index:3;
BYTE ss:2;
};
} *PSIB;
#define SIZE_B 1
#define SIZE_W 2
#define SIZE_V 3
#define SIZE_D 4
#define SIZE_P 5
#define SIZE_A 6
PSTR SegReg[8]={
"ES","CS","SS","DS","FS","GS","??","??"
};
PSTR RegByte[8]={
"AL","CL","DL","BL","AH","CH","DH","BH"
};
PSTR RegWord[8]={
"AX","CX","DX","BX","SP","BP","SI","DI"
};
PSTR RegDWord[8]={
"EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI"
};
//******************************************************
DWORD U_Size = BIT32;
// So default disassembler is bit16
//****************
DWORD SegPrefix;
//index of segment register (prefix)
//default is !!!_NOSEG_!!!
DWORD LockPrefix;
PSTR LockName;
DWORD RepPrefix;
PSTR RepName;
//****************
//**************************************
static XCPUCODE xcpu;
XCPUCODE* CDisasm::get_xcpu()
{
return &xcpu;
}
//**************************************
// The list of the types of Opdata1, Opdata2, Opdata3
typedef enum
{
D_NONE, // No any types
D_EB,D_EW,D_EV, // A ModR/M bytes, specifies the operand size.
D_GB,D_GW,D_GV, // The reg field of the ModR/M BYTE selects a normal register.
D_IB,D_IW,D_IV, // Immediate data.
D_SB, // Signed Immediate data.
D_SW, // The reg field of the ModR/M BYTE selects a segment register.
D_MV,D_MP,D_MA, // The ModR/M BYTE may refer only to memory.
D_OB,D_OV, // The offset of the operand is coded as a WORD or d-WORD ( no ModR/M )
D_JB,D_JV,D_JP, // The instruction contains a relative offset to be added to EIP.
D_RD, // The mod field of the ModR/M BYTE may refer only to a general register.
D_CD, // The reg field of the ModR/M BYTE selects a control register.
D_DD, // The reg field of the ModR/M BYTE selects a debug register.
D_1, // Only used for ( Group2 SHL/SHR... instruction )
D_AL, // Specifying AL register
D_CL, // Specifying CL register
D_DL, // Specifying DL register
D_BL, // Specifying BL register
D_AH, // Specifying AH register
D_CH, // Specifying CH register
D_DH, // Specifying DH register
D_BH, // Specifying BH register
D_AX, // Specifying AX register
D_CX, // Specifying CX register
D_DX, // Specifying DX register
D_BX, // Specifying BX register
D_SP, // Specifying SP register
D_BP, // Specifying BP register
D_SI, // Specifying SI register
D_DI, // Specifying DI register
D_AXV, // Specifying eAX register
D_CXV, // Specifying eCX register
D_DXV, // Specifying eDX register
D_BXV, // Specifying eBX register
D_SPV, // Specifying eSP register
D_BPV, // Specifying eBP register
D_SIV, // Specifying eSI register
D_DIV, // Specifying eDI register
D_ES, // Specifying ES register
D_CS, // Specifying CS register
D_SS, // Specifying SS register
D_DS, // Specifying DS register
D_FS, // Specifying FS register
D_GS, // Specifying GS register
D_V, // Used for PUSHA/POPA, PUSHF/POPF, SHAF/LAHF
D_XB,D_XV // Used for ( MOVS, LODS, OUTS, ... )
} OPDATATYPE;
//**************************************
INSTRUCTION grouptable1[8] =
{
{ C_ADD, "ADD", D_NONE, D_NONE, D_NONE },
{ C_OR, "OR", D_NONE, D_NONE, D_NONE },
{ C_ADC, "ADC", D_NONE, D_NONE, D_NONE },
{ C_SBB, "SBB", D_NONE, D_NONE, D_NONE },
{ C_AND, "AND", D_NONE, D_NONE, D_NONE },
{ C_SUB, "SUB", D_NONE, D_NONE, D_NONE },
{ C_XOR, "CMP", D_NONE, D_NONE, D_NONE },
{ C_CMP, "CMP", D_NONE, D_NONE, D_NONE }
};
INSTRUCTION grouptable2[8] =
{
{ C_ROL, "ROL", D_NONE, D_NONE, D_NONE },
{ C_ROR, "ROR", D_NONE, D_NONE, D_NONE },
{ C_RCL, "RCL", D_NONE, D_NONE, D_NONE },
{ C_RCR, "RCR", D_NONE, D_NONE, D_NONE },
{ C_SHL, "SHL", D_NONE, D_NONE, D_NONE },
{ C_SHR, "SHR", D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_SAR, "SAR", D_NONE, D_NONE, D_NONE }
};
INSTRUCTION grouptable3[8] =
{
{ C_MOV, "MOV", D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }
};
INSTRUCTION grouptable4[8] =
{
{ C_TEST, "TEST", D_NONE, D_IB, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_NOT, "NOT", D_NONE, D_NONE, D_NONE },
{ C_NEG, "NEG", D_NONE, D_NONE, D_NONE },
{ C_MUL, "MUL", D_NONE, D_NONE, D_NONE },
{ C_IMUL, "IMUL", D_NONE, D_NONE, D_NONE },
{ C_DIV, "DIV", D_NONE, D_NONE, D_NONE },
{ C_IDIV, "IDIV", D_NONE, D_NONE, D_NONE }
};
INSTRUCTION grouptable5[8] =
{
{ C_TEST, "TEST", D_NONE, D_IV, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_NOT, "NOT", D_NONE, D_NONE, D_NONE },
{ C_NEG, "NEG", D_NONE, D_NONE, D_NONE },
{ C_MUL, "MUL", D_NONE, D_NONE, D_NONE },
{ C_IMUL, "IMUL", D_NONE, D_NONE, D_NONE },
{ C_DIV, "DIV", D_NONE, D_NONE, D_NONE },
{ C_IDIV, "IDIV", D_NONE, D_NONE, D_NONE }
};
INSTRUCTION grouptable6[8] =
{
{ C_INC, "INC", D_NONE, D_NONE, D_NONE },
{ C_DEC, "DEC", D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }
};
INSTRUCTION grouptable7[8] =
{
{ C_INC, "INC", D_NONE, D_NONE, D_NONE },
{ C_DEC, "DEC", D_NONE, D_NONE, D_NONE },
{ C_CALL, "CALL", D_NONE, D_NONE, D_NONE },
{ C_CALLFAR, "CALL FAR", D_MP, D_NONE, D_NONE },
{ C_JMP, "JMP", D_NONE, D_NONE, D_NONE },
{ C_JMPFAR, "JMP FAR", D_MP, D_NONE, D_NONE },
{ C_PUSH, "PUSH", D_NONE, D_NONE, D_NONE },
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }
};
//**************************************
INSTRUCTION instruction0FH[] =
{
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x00,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x01,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x02,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x03,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x04,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x05,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x06,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x07,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x08,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x09,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x0a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x0b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x0c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x0d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x0e,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x0f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x10,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x11,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x12,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x13,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x14,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x15,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x16,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x17,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x18,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x19,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x1a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x1b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x1c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x1d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x1e,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x1f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x20,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x21,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x22,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x23,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x24,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x25,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x26
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x27,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x28,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x29,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x2a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x2b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x2c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x2d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x2e
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x2f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x30,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x31,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x32,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x33,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x34,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x35,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x36
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x37,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x38,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x39,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x3a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x3b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x3c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x3d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x3e
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x3f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x40,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x41,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x42,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x43,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x44,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x45,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x46,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x47,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x48,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x49,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x4a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x4b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x4c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x4d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x4e,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x4f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x50,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x51,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x52,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x53,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x54,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x55,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x56,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x57,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x58,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x59,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x5a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x5b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x5c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x5d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x5e,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x5f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x60,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x61,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x62,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x63,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x64
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x65
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x66
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x67
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x68,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x69,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x6a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x6b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x6c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x6d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x6e,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x6f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x70,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x71,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x72,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x73,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x74,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x75,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x76,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x77,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x78,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x79,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x7a,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x7b,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x7c,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x7d,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x7e,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0x7f,
{ C_JO, "JO", D_JV, D_NONE, D_NONE }, //0x80,
{ C_JNO, "JNO", D_JV, D_NONE, D_NONE }, //0x81,
{ C_JB, "JB", D_JV, D_NONE, D_NONE }, //0x82,
{ C_JNB, "JNB", D_JV, D_NONE, D_NONE }, //0x83,
{ C_JZ, "JZ", D_JV, D_NONE, D_NONE }, //0x84,
{ C_JNZ, "JNZ", D_JV, D_NONE, D_NONE }, //0x85,
{ C_JNA, "JNA", D_JV, D_NONE, D_NONE }, //0x86,
{ C_JA, "JA", D_JV, D_NONE, D_NONE }, //0x87,
{ C_JS, "JS", D_JV, D_NONE, D_NONE }, //0x88,
{ C_JNS, "JNS", D_JV, D_NONE, D_NONE }, //0x89,
{ C_JP, "JP", D_JV, D_NONE, D_NONE }, //0x8a,
{ C_JNP, "JNP", D_JV, D_NONE, D_NONE }, //0x8b,
{ C_JL, "JL", D_JV, D_NONE, D_NONE }, //0x8c,
{ C_JNL, "JNL", D_JV, D_NONE, D_NONE }, //0x8d,
{ C_JLE, "JLE", D_JV, D_NONE, D_NONE }, //0x8e,
{ C_JNLE, "JNLE", D_JV, D_NONE, D_NONE }, //0x8f,
{ C_SETO, "SETO", D_EB, D_NONE, D_NONE }, //0x90,
{ C_SETNO, "SETNO", D_EB, D_NONE, D_NONE }, //0x91,
{ C_SETB, "SETB", D_EB, D_NONE, D_NONE }, //0x92,
{ C_SETNB, "SETNB", D_EB, D_NONE, D_NONE }, //0x93,
{ C_SETZ, "SETZ", D_EB, D_NONE, D_NONE }, //0x94,
{ C_SETNZ, "SETNZ", D_EB, D_NONE, D_NONE }, //0x95,
{ C_SETNA, "SETNA", D_EB, D_NONE, D_NONE }, //0x96,
{ C_SETA, "SETA", D_EB, D_NONE, D_NONE }, //0x97,
{ C_SETS, "SETS", D_EB, D_NONE, D_NONE }, //0x98,
{ C_SETNS, "SETNS", D_EB, D_NONE, D_NONE }, //0x99,
{ C_SETP, "SETP", D_EB, D_NONE, D_NONE }, //0x9a,
{ C_SETNP, "SETNP", D_EB, D_NONE, D_NONE }, //0x9b,
{ C_SETL, "SETL", D_EB, D_NONE, D_NONE }, //0x9c,
{ C_SETNL, "SETNL", D_EB, D_NONE, D_NONE }, //0x9d,
{ C_SETLE, "SETLE", D_EB, D_NONE, D_NONE }, //0x9e,
{ C_SETNLE, "SETNLE", D_EB, D_NONE, D_NONE }, //0x9f,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa0,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa1,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa2,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa3,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa4,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa5,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa6,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa7,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa8,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xa9,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xaa,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xab,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xac,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xad,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xae,
// { C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xaf, //----
{ C_IMUL, "IMUL", D_GV, D_EV, D_NONE }, //0xaf, //++++
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xb0,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xb1,
{ C_LSS, "LSS", D_GV, D_MP, D_NONE }, //0xb2,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xb3,
{ C_LFS, "LFS", D_GV, D_MP, D_NONE }, //0xb4,
{ C_LGS, "LGS", D_GV, D_MP, D_NONE }, //0xb5,
{ C_MOVZX, "MOVZX", D_GV, D_EB, D_NONE }, //0xb6,
{ C_MOVZX, "MOVZX", D_GV, D_EW, D_NONE }, //0xb7,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xb8,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xb9,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xba,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xbb,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xbc,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xbd,
{ C_MOVSX, "MOVSX", D_GV, D_EB, D_NONE }, //0xbe,
{ C_MOVSX, "MOVSX", D_GV, D_EW, D_NONE }, //0xbf,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc0,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc1,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc2,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc3,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc4,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc5,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc6,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc7,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc8,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xc9,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xca,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xcb,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xcc,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xcd,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xce,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xcf,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd0,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd1,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd2,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd3,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd4,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd5,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd6,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd7,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd8,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xd9,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xda,
{ C_ERROR, NULL, D_NONE, D_NONE, D_NONE }, //0xdb,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -