⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insnsa.c

📁 nasm早期的源代码,比较简单是学习汇编和编译原理的好例子
💻 C
📖 第 1 页 / 共 5 页
字号:
    {I_CALL, 1, {MEMORY|FAR,0,0,0}, "\322\1\xFF\203", IF_8086},
    {I_CALL, 1, {MEMORY|BITS16|FAR,0,0,0}, "\320\1\xFF\203", IF_8086},
    {I_CALL, 1, {MEMORY|BITS32|FAR,0,0,0}, "\321\1\xFF\203", IF_386},
    {I_CALL, 1, {MEMORY|NEAR,0,0,0}, "\322\1\xFF\202", IF_8086},
    {I_CALL, 1, {MEMORY|BITS16|NEAR,0,0,0}, "\320\1\xFF\202", IF_8086},
    {I_CALL, 1, {MEMORY|BITS32|NEAR,0,0,0}, "\321\1\xFF\202", IF_386|IF_NOLONG},
    {I_CALL, 1, {MEMORY|BITS64|NEAR,0,0,0}, "\324\1\xFF\202", IF_X64},
    {I_CALL, 1, {REG16,0,0,0}, "\320\1\xFF\202", IF_8086},
    {I_CALL, 1, {REG32,0,0,0}, "\321\1\xFF\202", IF_386|IF_NOLONG},
    {I_CALL, 1, {REG64,0,0,0}, "\324\1\xFF\202", IF_X64},
    {I_CALL, 1, {MEMORY,0,0,0}, "\322\1\xFF\202", IF_8086},
    {I_CALL, 1, {MEMORY|BITS16,0,0,0}, "\320\1\xFF\202", IF_8086},
    {I_CALL, 1, {MEMORY|BITS32,0,0,0}, "\321\1\xFF\202", IF_386|IF_NOLONG},
    {I_CALL, 1, {MEMORY|BITS64,0,0,0}, "\324\1\xFF\202", IF_X64},
    ITEMPLATE_END
};

static const struct itemplate instrux_CBW[] = {
    {I_CBW, 0, {0,0,0,0}, "\320\1\x98", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CDQ[] = {
    {I_CDQ, 0, {0,0,0,0}, "\321\1\x99", IF_386},
    ITEMPLATE_END
};

static const struct itemplate instrux_CDQE[] = {
    {I_CDQE, 0, {0,0,0,0}, "\324\1\x98", IF_X64},
    ITEMPLATE_END
};

static const struct itemplate instrux_CLC[] = {
    {I_CLC, 0, {0,0,0,0}, "\1\xF8", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CLD[] = {
    {I_CLD, 0, {0,0,0,0}, "\1\xFC", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CLFLUSH[] = {
    {I_CLFLUSH, 1, {MEMORY,0,0,0}, "\2\x0F\x80\207", IF_KATMAI},
    {I_CLFLUSH, 1, {MEMORY,0,0,0}, "\2\x0F\xAE\207", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CLGI[] = {
    {I_CLGI, 0, {0,0,0,0}, "\3\x0F\x01\xDD", IF_X64|IF_AMD},
    ITEMPLATE_END
};

static const struct itemplate instrux_CLI[] = {
    {I_CLI, 0, {0,0,0,0}, "\1\xFA", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CLTS[] = {
    {I_CLTS, 0, {0,0,0,0}, "\2\x0F\x06", IF_286|IF_PRIV},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMC[] = {
    {I_CMC, 0, {0,0,0,0}, "\1\xF5", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMP[] = {
    {I_CMP, 2, {MEMORY,REG8,0,0}, "\1\x38\101", IF_8086|IF_SM},
    {I_CMP, 2, {REG8,REG8,0,0}, "\1\x38\101", IF_8086},
    {I_CMP, 2, {MEMORY,REG16,0,0}, "\320\1\x39\101", IF_8086|IF_SM},
    {I_CMP, 2, {REG16,REG16,0,0}, "\320\1\x39\101", IF_8086},
    {I_CMP, 2, {MEMORY,REG32,0,0}, "\321\1\x39\101", IF_386|IF_SM},
    {I_CMP, 2, {REG32,REG32,0,0}, "\321\1\x39\101", IF_386},
    {I_CMP, 2, {MEMORY,REG64,0,0}, "\324\1\x39\101", IF_X64|IF_SM},
    {I_CMP, 2, {REG64,REG64,0,0}, "\324\1\x39\101", IF_X64},
    {I_CMP, 2, {REG8,MEMORY,0,0}, "\1\x3A\110", IF_8086|IF_SM},
    {I_CMP, 2, {REG8,REG8,0,0}, "\1\x3A\110", IF_8086},
    {I_CMP, 2, {REG16,MEMORY,0,0}, "\320\1\x3B\110", IF_8086|IF_SM},
    {I_CMP, 2, {REG16,REG16,0,0}, "\320\1\x3B\110", IF_8086},
    {I_CMP, 2, {REG32,MEMORY,0,0}, "\321\1\x3B\110", IF_386|IF_SM},
    {I_CMP, 2, {REG32,REG32,0,0}, "\321\1\x3B\110", IF_386},
    {I_CMP, 2, {REG64,MEMORY,0,0}, "\324\1\x3B\110", IF_X64|IF_SM},
    {I_CMP, 2, {REG64,REG64,0,0}, "\324\1\x3B\110", IF_X64},
    {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0}, "\320\1\x83\207\15", IF_8086},
    {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, "\321\1\x83\207\15", IF_386},
    {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, "\324\1\x83\207\15", IF_X64},
    {I_CMP, 2, {REG_AL,IMMEDIATE,0,0}, "\1\x3C\21", IF_8086|IF_SM},
    {I_CMP, 2, {REG_AX,SBYTE,0,0}, "\320\1\x83\207\15", IF_8086|IF_SM},
    {I_CMP, 2, {REG_AX,IMMEDIATE,0,0}, "\320\1\x3D\31", IF_8086|IF_SM},
    {I_CMP, 2, {REG_EAX,SBYTE,0,0}, "\321\1\x83\207\15", IF_386|IF_SM},
    {I_CMP, 2, {REG_EAX,IMMEDIATE,0,0}, "\321\1\x3D\41", IF_386|IF_SM},
    {I_CMP, 2, {REG_RAX,SBYTE,0,0}, "\321\1\x83\207\15", IF_X64|IF_SM},
    {I_CMP, 2, {REG_RAX,IMMEDIATE,0,0}, "\321\1\x3D\41", IF_X64|IF_SM},
    {I_CMP, 2, {RM_GPR|BITS8,IMMEDIATE,0,0}, "\1\x80\207\21", IF_8086|IF_SM},
    {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE,0,0}, "\320\145\1\x81\207\141", IF_8086|IF_SM},
    {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE,0,0}, "\321\155\1\x81\207\151", IF_386|IF_SM},
    {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE,0,0}, "\324\155\1\x81\207\151", IF_X64|IF_SM},
    {I_CMP, 2, {MEMORY,IMMEDIATE|BITS8,0,0}, "\1\x80\207\21", IF_8086|IF_SM},
    {I_CMP, 2, {MEMORY,IMMEDIATE|BITS16,0,0}, "\320\145\1\x81\207\141", IF_8086|IF_SM},
    {I_CMP, 2, {MEMORY,IMMEDIATE|BITS32,0,0}, "\321\155\1\x81\207\151", IF_386|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPEQPD[] = {
    {I_CMPEQPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x00", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPEQPS[] = {
    {I_CMPEQPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x00", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPEQSD[] = {
    {I_CMPEQSD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x00", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPEQSS[] = {
    {I_CMPEQSS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x00", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLEPD[] = {
    {I_CMPLEPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x02", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLEPS[] = {
    {I_CMPLEPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x02", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLESD[] = {
    {I_CMPLESD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x02", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLESS[] = {
    {I_CMPLESS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x02", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLTPD[] = {
    {I_CMPLTPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x01", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLTPS[] = {
    {I_CMPLTPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x01", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLTSD[] = {
    {I_CMPLTSD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x01", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPLTSS[] = {
    {I_CMPLTSS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x01", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNEQPD[] = {
    {I_CMPNEQPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x04", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNEQPS[] = {
    {I_CMPNEQPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x04", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNEQSD[] = {
    {I_CMPNEQSD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x04", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNEQSS[] = {
    {I_CMPNEQSS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x04", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLEPD[] = {
    {I_CMPNLEPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x06", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLEPS[] = {
    {I_CMPNLEPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x06", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLESD[] = {
    {I_CMPNLESD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x06", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLESS[] = {
    {I_CMPNLESS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x06", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLTPD[] = {
    {I_CMPNLTPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x05", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLTPS[] = {
    {I_CMPNLTPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x05", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLTSD[] = {
    {I_CMPNLTSD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x05", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPNLTSS[] = {
    {I_CMPNLTSS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x05", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPORDPD[] = {
    {I_CMPORDPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x07", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPORDPS[] = {
    {I_CMPORDPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x07", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPORDSD[] = {
    {I_CMPORDSD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x07", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPORDSS[] = {
    {I_CMPORDSS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x07", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPPD[] = {
    {I_CMPPD, 3, {XMMREG,RM_XMM,IMMEDIATE,0}, "\331\366\2\x0F\xC2\110\26", IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPPS[] = {
    {I_CMPPS, 3, {XMMREG,MEMORY,IMMEDIATE,0}, "\331\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2},
    {I_CMPPS, 3, {XMMREG,XMMREG,IMMEDIATE,0}, "\331\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPSB[] = {
    {I_CMPSB, 0, {0,0,0,0}, "\335\1\xA6", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPSD[] = {
    {I_CMPSD, 0, {0,0,0,0}, "\335\321\1\xA7", IF_386},
    {I_CMPSD, 3, {XMMREG,RM_XMM,IMMEDIATE,0}, "\331\332\2\x0F\xC2\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPSQ[] = {
    {I_CMPSQ, 0, {0,0,0,0}, "\335\324\1\xA7", IF_X64},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPSS[] = {
    {I_CMPSS, 3, {XMMREG,MEMORY,IMMEDIATE,0}, "\333\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2},
    {I_CMPSS, 3, {XMMREG,XMMREG,IMMEDIATE,0}, "\333\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPSW[] = {
    {I_CMPSW, 0, {0,0,0,0}, "\335\320\1\xA7", IF_8086},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPUNORDPD[] = {
    {I_CMPUNORDPD, 2, {XMMREG,RM_XMM,0,0}, "\331\366\2\x0F\xC2\110\1\x03", IF_WILLAMETTE|IF_SSE2|IF_SM},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPUNORDPS[] = {
    {I_CMPUNORDPS, 2, {XMMREG,RM_XMM,0,0}, "\331\2\x0F\xC2\110\1\x03", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPUNORDSD[] = {
    {I_CMPUNORDSD, 2, {XMMREG,RM_XMM,0,0}, "\331\332\2\x0F\xC2\110\1\x03", IF_WILLAMETTE|IF_SSE2},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPUNORDSS[] = {
    {I_CMPUNORDSS, 2, {XMMREG,RM_XMM,0,0}, "\333\2\x0F\xC2\110\1\x03", IF_KATMAI|IF_SSE},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPXCHG[] = {
    {I_CMPXCHG, 2, {MEMORY,REG8,0,0}, "\2\x0F\xB0\101", IF_PENT|IF_SM},
    {I_CMPXCHG, 2, {REG8,REG8,0,0}, "\2\x0F\xB0\101", IF_PENT},
    {I_CMPXCHG, 2, {MEMORY,REG16,0,0}, "\320\2\x0F\xB1\101", IF_PENT|IF_SM},
    {I_CMPXCHG, 2, {REG16,REG16,0,0}, "\320\2\x0F\xB1\101", IF_PENT},
    {I_CMPXCHG, 2, {MEMORY,REG32,0,0}, "\321\2\x0F\xB1\101", IF_PENT|IF_SM},
    {I_CMPXCHG, 2, {REG32,REG32,0,0}, "\321\2\x0F\xB1\101", IF_PENT},
    {I_CMPXCHG, 2, {MEMORY,REG64,0,0}, "\324\2\x0F\xB1\101", IF_X64|IF_SM},
    {I_CMPXCHG, 2, {REG64,REG64,0,0}, "\324\2\x0F\xB1\101", IF_X64},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPXCHG16B[] = {
    {I_CMPXCHG16B, 1, {MEMORY,0,0,0}, "\324\2\x0F\xC7\201", IF_X64},
    ITEMPLATE_END
};

static const struct itemplate instrux_CMPXCHG486[] = {
    {I_CMPXCHG486, 2, {MEMORY,REG8,0,0}, "\2\x0F\xA6\101", IF_486|IF_SM|IF_UNDOC},
    {I_CMPXCHG486, 2, {REG8,REG8,0,0}, "\2\x0F\xA6\101", IF_486|IF_UNDOC},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -