char *Mnemonics[]={ // FIRST OF ALL THE COMMANDS WITH A P-FLAG. THIS"LL MAKE THINGS EASIER FOR // COMPARISON IN THE PARSE ENGINE //P1=0-7 "ADD","OR","ADC","SBB/BC","AND","SUB","XOR","CMP", //P2=4-7 "NOT","NEG","MUL","-","DIV","IDIV", // IMUL ENTFERNT //P3=0-5/7 "ROL","ROR","RCL","RCR","SHL/AL","SHR","-","SAR", //P4=4-7 "BT","BTS","BTR","BTC", // USUAL COMMANDS "INC","DEC","TEST", "IMUL","SHLD","SHRD", "DAA","DAS","AAA","AAS","AAM","AAD", "MOVZX","MOVSX","CBW","CWDE","CWD","CDQ", "BSWAP","XLAT/LATB","BSF","BSR", "CMPXCHG","CMPXCHG8B","XADD", "NOP","WAIT","LOCK","HLT/ALT","INT", "INTO","IRET","IRETD", "POPF","POPFD","PUSHF","PUSHFD","SAHF","LAHF", "CMC","CLC","STC","CLI","STI","CLD","STD", "PUSH","PUSHA","PUSHAD","POP","POPA","POPAD", "XCHG","MOV","LEA", "LFS","LGS","LSS", "LES","LDS", "ADRSIZE", "IN","OUT","INSB","INSW","INSD","OUTSB","OUTSW","OUTSD", "MOVSB","MOVSW","MOVSD","CMPSB","CMPSW","CMPSD", "STOSB","STOSW","STOSD","LODSB","LODSW","LODSD", "SCASB","SCASW","SCASD","REPNE/EPNZ","REP/EPE/EPZ", "JCXZ","JECXZ","LOOP/OOPW","LOOPD","LOOPZ/OOPE","LOOPNZ/OOPNE", "JO","JNO","JC/B/NAE","JNC/AE/NB", "JE/Z","JNE/NZ","JBE/NA","JA/NBE", "JS","JNS","JP/PE","JNP/PO","JL/NGE","JGE/NL", "JLE/NG","JG/NLE", "SETO","SETNO","SETC/ETB/ETNAE","SETNC/ETAE/ETNB", "SETE/ETZ","SETNE/ETNZ","SETBE/ETNA","SETA/ETNBE", "SETS","SETNS","SETP/ETPE","SETNP/ETPO","SETL/ETNGE","SETGE/ETNL", "SETLE/ETNG","SETG/ETNLE", /*"JMPS","JMPN","JMPF",*/"JMP", "CALL",/*"CALLF",*/"RET","RETF", "ENTER","LEAVE","BOUND","ARPL", "SLDT","STR","LLDT","LTR","VERR","VERW","LAR","LSL", "SGDT","SIDT","LGDT","LIDT","SMSW","LMSW","CLTS", "INVD","WBINVD",//"INVLPD", //INTEL PENTIUM COMMANDS "WRMSR","CPUID","RDMSR","RDTSC","RSM", //INTEL PENTIUM PRO INSTRUCTIONS "RDPMC","UD2",/*"EMMX","SETALC",*/ //MMX INSTRUCTIONS "PUNPCKLBW","PUNPCKLWD","PUNPCKLDQ", //UNPACK LOW ORDER 60 - "PACKSSWB", "PCMPGTB","PCMPGTW","PCMPGTD", "PACKUSWB", //PACK MMX REG WITH UNSIGNED SATURATION "PUNPCKHBW","PUNPCKHWD","PUNPCKHDQ", //UNPACK HIGH ORDER "PACKSSDW", //PACK MMX REG WITH SIGNED SATURATION - 6B "PSRLW","PSRLD","PSRLQ", "PSRAW","PSRAD", "PSLLW","PSLLD","PSLLQ", "PCMPEQB","PCMPEQW","PCMPEQD",//74-76 "PMULLW", //d5 "MOVD","MOVQ", //MOVE MMX REG "PSUBUSB","PSUBUSW",//d8-d9 "EMMS", "PAND", //db "PADDUSB","PADDUSW", //" WITH UNSIGNED SATURATION "PANDN", //df "PMULHW", //e5 "PSUBSB","PSUBSW", //e8-e9 "POR", //eb "PADDSB","PADDSW", //" WITH SIGNED SATURATION "PXOR", //ef "PMADDWD", //f5 "PSUBB","PSUBW","PSUBD", //SUBTRACT MMX REG f8-fa "PADDB","PADDW","PADDD", //ADD MMX REG WITH WRAP-AROUND fc-fe "DB","DW","DD","INVLPG","LOADALL","OPSIZE", "F2XM1","FABS","FADD","FADDP","FBLD","FBSTP","FCHS","FCLEX","FCOM", "FCOMP","FNCLEX","FCOMPP","FCOS","FDECSTP","FDISI","FDIV","FDIVP", "FDIVR","FDIVRP","FFREE","FIADD","FICOM","FICOMP","FIDIV","FIDIVR", "FILD","FILDQ","FIMUL","FIST","FISTP","FISUB","FISUBR","FENI","FINCSTP", "FINIT","FNINIT","FLD","FLDCW","FLDENV","FLDLG2","FLDLN2","FLDL2E", "FLDL2T","FLDPI","FLDZ","FLD1","FMUL","FMULP","FNOP","FPATAN","FPREM", "FPREM1","FPTAN","FRNDINT","FSETPM","FRSTOR","FSAVE","FNSAVE","FSCALE", "FSIN","FSINCOS","FSQRT","FST","FSTCW","FNSTCW","FSTP","FSTSW","FNSTSW", "FSTENV","FNSTENV","FSUB","FSUBP","FSUBR","FSUBRP","FTST","FUCOM","FUCOMP", "FUCOMPP","FXCH","FWAIT","FXAM","FXTRACT","FYL2X","FYL2XP1", "SYSENTER","SYSEXIT","FCMOVB","FCMOVE","FCMOVBE","FCMOVU","FCMOVNB", "FCMOVNE","FCMOVNBE","FCMOVNU","FCOMI","FCOMIP","FUCOMI","FUCOMIP", "FXRSTOR","FXSAVE", "FNDISI", "FNENI", "FNSETPM", "CMOVO","CMOVNO","CMOVB/MOVNAE/MOVC","CMOVAE/MOVNB/MOVNC","CMOVE/MOVZ", "CMOVNE/MOVNZ","CMOVBE/MOVNA","CMOVA/MOVNBE","CMOVS","CMOVNS", "CMOVP/MOVPE","CMOVNP/MOVPO","CMOVL/MOVNGE","CMOVGE/MOVNL", "CMOVLE/MOVNG","CMOVG/MOVNLE", //MMX Pentium III extention "MASKMOVQ", "MOVNTQ", "PAVGB", "PAVGW", "PEXTRW", "PINSRW", "PMAXUB", "PMAXSW", "PMINUB", "PMINSW", "PMOVMSKB","PMULHUW", "PREFETCHT0","PREFETCHT1","PREFETCHT2","PREFETCHNTA","SFENCE", "PSADBW", "PSHUFW", //XMM extentions Pentium III "ADDPS", "ADDSS", "ANDNPS", "ANDPS", "CMPPS", "CMPSS", "COMISS", "CVTPI2PS","CVTPS2PI","CVTSI2SS","CVTSS2SI","CVTTPS2PI", "CVTTSS2SI","DIVPS", "DIVSS", "LDMXCSR", "MAXPS", "MAXSS", "MINPS", "MINSS", "MOVAPS", "MOVHLPS", "MOVHPS", "MOVLHPS", "MOVLPS", "MOVMSKPS","MOVSS", "MOVUPS", "MULPS", "MULSS", "MOVNTPS", "ORPS", "RCPPS", "RCPSS", "RSQRTPS", "RSQRTSS", "SHUFPS", "SQRTPS", "SQRTSS", "STMXCSR", "SUBPS", "SUBSS", "UCOMISS", "UNPCKHPS","UNPCKLPS","XORPS", // Pentium IV "LFENCE", "MFENCE", "ADDPD", "ADDSD", "ANDPD", "ANDNPD", "CMPPD", "COMISD", "CVTDQ2PD", "CVTDQ2PS", "CVTPD2DQ", "CVTPD2PI", "CVTPD2PS","CVTPI2PD", "CVTPS2DQ", "CVTPS2PD", "CVTSD2SI", "CVTSD2SS", "CVTSI2SD","CVTSS2SD", "CVTTPD2PI", "CVTTPD2DQ", "CVTTPS2DQ", "CVTTSD2SI", "DIVPD", "DIVSD", "MASKMOVDQU","MAXPD", "MAXSD", "MINPD", "MINSD", "MOVAPD", "MOVDQA", "MOVDQU", "MOVDQ2Q", "MOVHPD", "MOVLPD", "MOVMSKPD", "MOVNTDQ", "MOVNTPD", "MOVNTI", "MOVQ2DQ", "MOVUPD", "MULPD", "MULSD", "ORPD", "PSHUFD", "PSHUFHW", "PSHUFLW", "PSLLDQ", "PSRLDQ", "SHUFPD", "SQRTPD", "SQRTSD", "SUBPD", "SUBSD", "UCOMISD", "UNPCKHPD", "UNPCKLPD", "XORPD", "PADDQ", "PMULUDQ", "PSUBQ", "PUNPCKHQDQ","PUNPCKLQDQ","CLFLUSH", "MONITOR", "MWAIT", "ADDSUBPD", "ADDSUBPS", "CMPEQSD", "CMPLTSD", "CMPLESD", "CMPUNORDSD","CMPNEQSD", "CMPNLTSD", "CMPNLESD", "CMPORDSD", "CMPEQPD", "CMPLTPD", "CMPLEPD", "CMPUNORDPD","CMPNEQPD", "CMPNLTPD", "CMPNLEPD","CMPORDPD", "CMPEQPS", "CMPLTPS", "CMPLEPS", "CMPUNORDPS", "CMPNEQPS","CMPNLTPS", "CMPNLEPS", "CMPORDPS", "CMPEQSS", "CMPLTSS", "CMPLESS", "CMPUNORDSS","CMPNEQSS", "CMPNLTSS", "CMPNLESS", "CMPORDSS", "HADDPD", "HADDPS", "HSUBPD", "HSUBPS", "LDDQU", "MOVDDUP", "MOVSHDUP","MOVSLDUP", "PAUSE", NULL};