/* Original file: asmserv.c * * Free Disassembler and Assembler - * command data and service routines * * Copyright (C) 2008 wj32 * Copyright (C) 2001 Oleh Yuschuk * * This file is part of Process Hacker. * * Process Hacker is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Process Hacker is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Process Hacker; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ using System; using System.Collections.Generic; using System.Text; namespace ProcessHacker { public partial class Asm { public static string[][] RegName = { new string[] { "AL", "CL", "DL", "BL", "AH", "CH", "DH", "BH", "R8" }, new string[] { "AX", "CX", "DX", "BX", "SP", "BP", "SI", "DI", "R16" }, new string[] { "EAX", "ECX", "EDX", "EBX", "ESP", "EBP", "ESI", "EDI", "R32" } }; public static string[] SegName = new string[] { "ES", "CS", "SS", "DS", "FS", "GS", "SEG?", "SEG?" }; public static string[] SizeName = new string[] { "(0-BYTE)", "BYTE", "WORD", "(3-BYTE)", "DWORD", "(5-BYTE)", "FWORD", "(7-BYTE)", "QWORD", "(9-BYTE)", "TBYTE" }; public static TAddrDec[] Addr16 = new TAddrDec[] { new TAddrDec() { DefSeg = SEG_DS, Descr = "BX+SI" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "BX+DI" }, new TAddrDec() { DefSeg = SEG_SS, Descr = "BP+SI" }, new TAddrDec() { DefSeg = SEG_SS, Descr = "BP+DI" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "SI" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "DI" }, new TAddrDec() { DefSeg = SEG_SS, Descr = "BP" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "BX" } }; public static TAddrDec[] Addr32 = new TAddrDec[] { new TAddrDec() { DefSeg = SEG_DS, Descr = "EAX" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "ECX" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "EDX" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "EBX" }, new TAddrDec() { DefSeg = SEG_SS, Descr = "" }, new TAddrDec() { DefSeg = SEG_SS, Descr = "EBP" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "ESI" }, new TAddrDec() { DefSeg = SEG_DS, Descr = "EDI" }, }; public static string[] FpuName = { "ST0", "ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7", "FPU" }; public static string[] MmxName = { "MM0", "MM1", "MM2", "MM3", "MM4", "MM5", "MM6", "MM7", "MMX" }; public static string[] CrName = { "CR0", "CR1", "CR2", "CR3", "CR4", "CR5", "CR6", "CR7", "CRX" }; public static string[] DrName = { "DR0", "DR1", "DR2", "DR3", "DR4", "DR5", "DR6", "DR7", "DRX" }; // produced using Notepad++ with regex: // Replace { *([^,]+), *([^,]+), *([^,]+), *([^,]+), *([^,]+), *([^,]+), *([^,]+), *([^,]+), *([^}]+)}, // With new TCmdData() { Mask = \1, Code = \2, Length = \3, Bits = \4, Arg1 = \5, Arg2 = \6, Arg3 = \7, Type = \8, Name = \9 }, public static TCmdData[] CmdData = { new TCmdData() { Mask = 0x0000FF, Code = 0x000090, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "NOP" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00008A, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "MOV" }, new TCmdData() { Mask = 0x0000F8, Code = 0x000050, Length = 1, Bits = 00, Arg1 = RCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+0, Name = "PUSH" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000088, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "MOV" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E8, Length = 1, Bits = 00, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+0, Name = "CALL" }, new TCmdData() { Mask = 0x0000FD, Code = 0x000068, Length = 1, Bits = SS, Arg1 = IMM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+0, Name = "PUSH" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00008D, Length = 1, Bits = 00, Arg1 = REG, Arg2 = MMA, Arg3 = NNN, Type = C_CMD+0, Name = "LEA" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000074, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JE,JZ" }, new TCmdData() { Mask = 0x0000F8, Code = 0x000058, Length = 1, Bits = 00, Arg1 = RCM, Arg2 = NNN, Arg3 = NNN, Type = C_POP+0, Name = "POP" }, new TCmdData() { Mask = 0x0038FC, Code = 0x000080, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+1, Name = "ADD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000075, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNZ,JNE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000EB, Length = 1, Bits = 00, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMP+0, Name = "JMP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E9, Length = 1, Bits = 00, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMP+0, Name = "JMP" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000084, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "TEST" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0000C6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+1, Name = "MOV" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000032, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "XOR" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00003A, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMP" }, new TCmdData() { Mask = 0x0038FC, Code = 0x003880, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+1, Name = "CMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010FF, Length = 1, Bits = 00, Arg1 = MRJ, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+0, Name = "CALL" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000C3, Length = 1, Bits = 00, Arg1 = PRN, Arg2 = NNN, Arg3 = NNN, Type = C_RET+0, Name = "RETN,RET" }, new TCmdData() { Mask = 0x0000F0, Code = 0x0000B0, Length = 1, Bits = W3, Arg1 = RCM, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+0, Name = "MOV" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000A0, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMA, Arg3 = NNN, Type = C_CMD+0, Name = "MOV" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00840F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JE,JZ" }, new TCmdData() { Mask = 0x0000F8, Code = 0x000040, Length = 1, Bits = 00, Arg1 = RCM, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "INC" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0000F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+1, Name = "TEST" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000A2, Length = 1, Bits = WW, Arg1 = IMA, Arg2 = RAC, Arg3 = NNN, Type = C_CMD+0, Name = "MOV" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00002A, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "SUB" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00007E, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JLE,JNG" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00850F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNZ,JNE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000C2, Length = 1, Bits = 00, Arg1 = IM2, Arg2 = PRN, Arg3 = NNN, Type = C_RET+0, Name = "RETN" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030FF, Length = 1, Bits = 00, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+1, Name = "PUSH" }, new TCmdData() { Mask = 0x0038FC, Code = 0x000880, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+1, Name = "OR" }, new TCmdData() { Mask = 0x0038FC, Code = 0x002880, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+1, Name = "SUB" }, new TCmdData() { Mask = 0x0000F8, Code = 0x000048, Length = 1, Bits = 00, Arg1 = RCM, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "DEC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00BF0F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MR2, Arg3 = NNN, Type = C_CMD+1, Name = "MOVSX" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00007C, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JL,JNGE" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000002, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "ADD" }, new TCmdData() { Mask = 0x0038FC, Code = 0x002080, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+1, Name = "AND" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00003C, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+0, Name = "CMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020FF, Length = 1, Bits = 00, Arg1 = MRJ, Arg2 = NNN, Arg3 = NNN, Type = C_JMP+0, Name = "JMP" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0010F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "NOT" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0028C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "SHR" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000038, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "CMP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00007D, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JGE,JNL" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00007F, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JG,JNLE" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0020C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "SHL" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00001A, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "SBB" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0018F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "NEG" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000C9, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "LEAVE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000060, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "&PUSHA*" }, new TCmdData() { Mask = 0x0038FF, Code = 0x00008F, Length = 1, Bits = 00, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_POP+1, Name = "POP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000061, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "&POPA*" }, new TCmdData() { Mask = 0x0000F8, Code = 0x000090, Length = 1, Bits = 00, Arg1 = RAC, Arg2 = RCM, Arg3 = NNN, Type = C_CMD+0, Name = "XCHG" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000086, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "XCHG" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000000, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "ADD" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000010, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "ADC" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000012, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "ADC" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000020, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "AND" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000022, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "AND" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000008, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "OR" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00000A, Length = 1, Bits = WW, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "OR" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000028, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "SUB" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000018, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SBB" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000030, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+0, Name = "XOR" }, new TCmdData() { Mask = 0x0038FC, Code = 0x001080, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "ADC" }, new TCmdData() { Mask = 0x0038FC, Code = 0x001880, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "SBB" }, new TCmdData() { Mask = 0x0038FC, Code = 0x003080, Length = 1, Bits = WS, Arg1 = MRG, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+1, Name = "XOR" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000004, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+0, Name = "ADD" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000014, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "ADC" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000024, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+0, Name = "AND" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00000C, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+0, Name = "OR" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00002C, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+0, Name = "SUB" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00001C, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMM, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SBB" }, new TCmdData() { Mask = 0x0000FE, Code = 0x000034, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+0, Name = "XOR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0000FE, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "INC" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0008FE, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "DEC" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000A8, Length = 1, Bits = WW, Arg1 = RAC, Arg2 = IMU, Arg3 = NNN, Type = C_CMD+0, Name = "TEST" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0020F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "MUL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0028F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "IMUL" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AF0F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "IMUL" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00006B, Length = 1, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = IMX, Type = C_CMD+C_RARE+0, Name = "IMUL" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000069, Length = 1, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = IMM, Type = C_CMD+C_RARE+0, Name = "IMUL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0030F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "DIV" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0038F6, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "IDIV" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000098, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "&CBW:CWDE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000099, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "&CWD:CDQ" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0000D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "ROL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0008D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "ROR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0010D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "RCL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0018D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "RCR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0020D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "SHL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0028D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "SHR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0038D0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = C01, Arg3 = NNN, Type = C_CMD+1, Name = "SAR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0000D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "ROL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0008D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "ROR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0010D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "RCL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0018D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "RCR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0020D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "SHL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0028D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "SHR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0038D2, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = RCL, Arg3 = NNN, Type = C_CMD+1, Name = "SAR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0000C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "ROL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0008C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "ROR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0010C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "RCL" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0018C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "RCR" }, new TCmdData() { Mask = 0x0038FE, Code = 0x0038C0, Length = 1, Bits = WW, Arg1 = MRG, Arg2 = IMS, Arg3 = NNN, Type = C_CMD+1, Name = "SAR" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000070, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JO" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000071, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNO" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000072, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JB,JC" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000073, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNB,JNC" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000076, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JBE,JNA" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000077, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JA,JNBE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000078, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000079, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00007A, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+C_RARE+0, Name = "JPE,JP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00007B, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+C_RARE+0, Name = "JPO,JNP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E3, Length = 1, Bits = 00, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+C_RARE+0, Name = "$JCXZ:JECXZ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00800F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JO" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00810F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNO" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00820F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JB,JC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00830F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNB,JNC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00860F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JBE,JNA" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00870F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JA,JNBE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00880F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00890F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JNS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x008A0F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+C_RARE+0, Name = "JPE,JP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x008B0F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+C_RARE+0, Name = "JPO,JNP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x008C0F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JL,JNGE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x008D0F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JGE,JNL" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x008E0F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JLE,JNG" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x008F0F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JG,JNLE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000F8, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "CLC" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000F9, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "STC" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000F5, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "CMC" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000FC, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "CLD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000FD, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "STD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000FA, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "CLI" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000FB, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "STI" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00008C, Length = 1, Bits = FF, Arg1 = MRG, Arg2 = SGM, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "MOV" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00008E, Length = 1, Bits = FF, Arg1 = SGM, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "MOV" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000A6, Length = 1, Bits = WW, Arg1 = MSO, Arg2 = MDE, Arg3 = NNN, Type = C_CMD+1, Name = "CMPS" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000AC, Length = 1, Bits = WW, Arg1 = MSO, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "LODS" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000A4, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = MSO, Arg3 = NNN, Type = C_CMD+1, Name = "MOVS" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000AE, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = PAC, Arg3 = NNN, Type = C_CMD+1, Name = "SCAS" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000AA, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = PAC, Arg3 = NNN, Type = C_CMD+1, Name = "STOS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00A4F3, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = MSO, Arg3 = PCX, Type = C_REP+1, Name = "REP MOVS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00ACF3, Length = 1, Bits = WW, Arg1 = MSO, Arg2 = PAC, Arg3 = PCX, Type = C_REP+C_RARE+1, Name = "REP LODS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00AAF3, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = PAC, Arg3 = PCX, Type = C_REP+1, Name = "REP STOS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00A6F3, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = MSO, Arg3 = PCX, Type = C_REP+1, Name = "REPE CMPS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00AEF3, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = PAC, Arg3 = PCX, Type = C_REP+1, Name = "REPE SCAS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00A6F2, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = MSO, Arg3 = PCX, Type = C_REP+1, Name = "REPNE CMPS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00AEF2, Length = 1, Bits = WW, Arg1 = MDE, Arg2 = PAC, Arg3 = PCX, Type = C_REP+1, Name = "REPNE SCAS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000EA, Length = 1, Bits = 00, Arg1 = JMF, Arg2 = NNN, Arg3 = NNN, Type = C_JMP+C_RARE+0, Name = "JMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028FF, Length = 1, Bits = 00, Arg1 = MMS, Arg2 = NNN, Arg3 = NNN, Type = C_JMP+C_RARE+1, Name = "JMP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009A, Length = 1, Bits = 00, Arg1 = JMF, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+C_RARE+0, Name = "CALL" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018FF, Length = 1, Bits = 00, Arg1 = MMS, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+C_RARE+1, Name = "CALL" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000CB, Length = 1, Bits = 00, Arg1 = PRF, Arg2 = NNN, Arg3 = NNN, Type = C_RET+C_RARE+0, Name = "RETF" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000CA, Length = 1, Bits = 00, Arg1 = IM2, Arg2 = PRF, Arg3 = NNN, Type = C_RET+C_RARE+0, Name = "RETF" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A40F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = IMS, Type = C_CMD+0, Name = "SHLD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AC0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = IMS, Type = C_CMD+0, Name = "SHRD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A50F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = RCL, Type = C_CMD+0, Name = "SHLD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AD0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = RCL, Type = C_CMD+0, Name = "SHRD" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C80F, Length = 2, Bits = 00, Arg1 = RCM, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "BSWAP" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00C00F, Length = 2, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "XADD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E2, Length = 1, Bits = LL, Arg1 = JOB, Arg2 = PCX, Arg3 = NNN, Type = C_JMC+0, Name = "$LOOP*" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E1, Length = 1, Bits = LL, Arg1 = JOB, Arg2 = PCX, Arg3 = NNN, Type = C_JMC+0, Name = "$LOOP*E" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E0, Length = 1, Bits = LL, Arg1 = JOB, Arg2 = PCX, Arg3 = NNN, Type = C_JMC+0, Name = "$LOOP*NE" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000C8, Length = 1, Bits = 00, Arg1 = IM2, Arg2 = IM1, Arg3 = NNN, Type = C_CMD+0, Name = "ENTER" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000E4, Length = 1, Bits = WP, Arg1 = RAC, Arg2 = IM1, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "IN" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000EC, Length = 1, Bits = WP, Arg1 = RAC, Arg2 = RDX, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "IN" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000E6, Length = 1, Bits = WP, Arg1 = IM1, Arg2 = RAC, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "OUT" }, new TCmdData() { Mask = 0x0000FE, Code = 0x0000EE, Length = 1, Bits = WP, Arg1 = RDX, Arg2 = RAC, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "OUT" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00006C, Length = 1, Bits = WP, Arg1 = MDE, Arg2 = RDX, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "INS" }, new TCmdData() { Mask = 0x0000FE, Code = 0x00006E, Length = 1, Bits = WP, Arg1 = RDX, Arg2 = MDE, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "OUTS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x006CF3, Length = 1, Bits = WP, Arg1 = MDE, Arg2 = RDX, Arg3 = PCX, Type = C_REP+C_RARE+1, Name = "REP INS" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x006EF3, Length = 1, Bits = WP, Arg1 = RDX, Arg2 = MDE, Arg3 = PCX, Type = C_REP+C_RARE+1, Name = "REP OUTS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000037, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "AAA" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00003F, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "AAS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x000AD4, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "AAM" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000D4, Length = 1, Bits = 00, Arg1 = IM1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "AAM" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x000AD5, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "AAD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000D5, Length = 1, Bits = 00, Arg1 = IM1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "AAD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000027, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "DAA" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00002F, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "DAS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000F4, Length = 1, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_PRI+C_RARE+0, Name = "HLT" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00000E, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+C_RARE+0, Name = "PUSH" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000016, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+C_RARE+0, Name = "PUSH" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00001E, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+C_RARE+0, Name = "PUSH" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000006, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+C_RARE+0, Name = "PUSH" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A00F, Length = 2, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+C_RARE+0, Name = "PUSH" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A80F, Length = 2, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+C_RARE+0, Name = "PUSH" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00001F, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_POP+C_RARE+0, Name = "POP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000007, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_POP+C_RARE+0, Name = "POP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000017, Length = 1, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_POP+C_RARE+0, Name = "POP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A10F, Length = 2, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_POP+C_RARE+0, Name = "POP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A90F, Length = 2, Bits = 00, Arg1 = SCM, Arg2 = NNN, Arg3 = NNN, Type = C_POP+C_RARE+0, Name = "POP" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000D7, Length = 1, Bits = 00, Arg1 = MXL, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "XLAT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00BE0F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MR1, Arg3 = NNN, Type = C_CMD+1, Name = "MOVSX" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00B60F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MR1, Arg3 = NNN, Type = C_CMD+1, Name = "MOVZX" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00B70F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MR2, Arg3 = NNN, Type = C_CMD+1, Name = "MOVZX" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009B, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "WAIT" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009F, Length = 1, Bits = 00, Arg1 = PAH, Arg2 = PFL, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LAHF" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009E, Length = 1, Bits = 00, Arg1 = PFL, Arg2 = PAH, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SAHF" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009C, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_PSH+0, Name = "&PUSHF*" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009D, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLG+0, Name = "&POPF*" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000CD, Length = 1, Bits = 00, Arg1 = IM1, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+C_RARE+0, Name = "INT" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000CC, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+C_RARE+0, Name = "INT3" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000CE, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+C_RARE+0, Name = "INTO" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000CF, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_RTF+C_RARE+0, Name = "&IRET*" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00900F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETO" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00910F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETNO" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00920F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETB,SETC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00930F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETNB,SETNC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00940F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETE,SETZ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00950F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETNE,SETNZ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00960F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETBE,SETNA" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00970F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETA,SETNBE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00980F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00990F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETNS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x009A0F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SETPE,SETP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x009B0F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SETPO,SETNP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x009C0F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETL,SETNGE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x009D0F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETGE,SETNL" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x009E0F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETLE,SETNG" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x009F0F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SETG,SETNLE" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x20BA0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = IM1, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x28BA0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = IM1, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BTS" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x30BA0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = IM1, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BTR" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x38BA0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = IM1, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BTC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A30F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AB0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BTS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00B30F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BTR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00BB0F, Length = 2, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "BTC" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000C5, Length = 1, Bits = 00, Arg1 = REG, Arg2 = MML, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LDS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000C4, Length = 1, Bits = 00, Arg1 = REG, Arg2 = MML, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LES" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00B40F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MML, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LFS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00B50F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MML, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LGS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00B20F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MML, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LSS" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000063, Length = 1, Bits = 00, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "ARPL" }, new TCmdData() { Mask = 0x0000FF, Code = 0x000062, Length = 1, Bits = 00, Arg1 = REG, Arg2 = MMB, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "BOUND" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00BC0F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "BSF" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00BD0F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "BSR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00060F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "CLTS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00400F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVO" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00410F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVNO" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00420F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVB,CMOVC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00430F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVNB,CMOVNC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00440F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVE,CMOVZ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00450F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVNE,CMOVNZ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00460F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVBE,CMOVNA" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00470F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVA,CMOVNBE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00480F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00490F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVNS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x004A0F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVPE,CMOVP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x004B0F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVPO,CMOVNP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x004C0F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVL,CMOVNGE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x004D0F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVGE,CMOVNL" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x004E0F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVLE,CMOVNG" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x004F0F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVG,CMOVNLE" }, new TCmdData() { Mask = 0x00FEFF, Code = 0x00B00F, Length = 2, Bits = WW, Arg1 = MRG, Arg2 = REG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "CMPXCHG" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x08C70F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+1, Name = "CMPXCHG8B" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A20F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "CPUID" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00080F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "INVD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00020F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LAR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00030F, Length = 2, Bits = 00, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LSL" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x38010F, Length = 2, Bits = PR, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "INVLPG" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00090F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "WBINVD" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x10010F, Length = 2, Bits = PR, Arg1 = MM6, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LGDT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x00010F, Length = 2, Bits = 00, Arg1 = MM6, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SGDT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x18010F, Length = 2, Bits = PR, Arg1 = MM6, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LIDT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x08010F, Length = 2, Bits = 00, Arg1 = MM6, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SIDT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x10000F, Length = 2, Bits = PR, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LLDT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x00000F, Length = 2, Bits = 00, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SLDT" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x18000F, Length = 2, Bits = PR, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LTR" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x08000F, Length = 2, Bits = 00, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "STR" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x30010F, Length = 2, Bits = PR, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "LMSW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x20010F, Length = 2, Bits = 00, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SMSW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x20000F, Length = 2, Bits = 00, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "VERR" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x28000F, Length = 2, Bits = 00, Arg1 = MR2, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "VERW" }, new TCmdData() { Mask = 0xC0FFFF, Code = 0xC0220F, Length = 2, Bits = PR, Arg1 = CRX, Arg2 = RR4, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "MOV" }, new TCmdData() { Mask = 0xC0FFFF, Code = 0xC0200F, Length = 2, Bits = 00, Arg1 = RR4, Arg2 = CRX, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "MOV" }, new TCmdData() { Mask = 0xC0FFFF, Code = 0xC0230F, Length = 2, Bits = PR, Arg1 = DRX, Arg2 = RR4, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "MOV" }, new TCmdData() { Mask = 0xC0FFFF, Code = 0xC0210F, Length = 2, Bits = PR, Arg1 = RR4, Arg2 = DRX, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "MOV" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00310F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "RDTSC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00320F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "RDMSR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00300F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "WRMSR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00330F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "RDPMC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AA0F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_RTF+C_RARE+0, Name = "RSM" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x000B0F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "UD2" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00340F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SYSENTER" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00350F, Length = 2, Bits = PR, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SYSEXIT" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000D6, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "SALC" }, // FPU instructions. Never change the order of instructions! new TCmdData() { Mask = 0x00FFFF, Code = 0x00F0D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "F2XM1" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E0D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FCHS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E1D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FABS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E2DB, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FCLEX" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E3DB, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FINIT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F6D9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FDECSTP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F7D9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FINCSTP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E4D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FTST" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FAD9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSQRT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FED9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSIN" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FFD9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FCOS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FBD9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSINCOS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F2D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FPTAN" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F3D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = PS1, Arg3 = NNN, Type = C_FLT+0, Name = "FPATAN" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F8D9, Length = 2, Bits = 00, Arg1 = PS1, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FPREM" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F5D9, Length = 2, Bits = 00, Arg1 = PS1, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FPREM1" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F1D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = PS1, Arg3 = NNN, Type = C_FLT+0, Name = "FYL2X" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F9D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = PS1, Arg3 = NNN, Type = C_FLT+0, Name = "FYL2XP1" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FCD9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FRNDINT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E8D9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLD1" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E9D9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDL2T" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EAD9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDL2E" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EBD9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDPI" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00ECD9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDLG2" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EDD9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDLN2" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EED9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDZ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FDD9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = PS1, Arg3 = NNN, Type = C_FLT+0, Name = "FSCALE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D0D9, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FNOP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E0DF, Length = 2, Bits = FF, Arg1 = RAX, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSTSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E5D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FXAM" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F4D9, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FXTRACT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D9DE, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = PS1, Arg3 = NNN, Type = C_FLT+0, Name = "FCOMPP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E9DA, Length = 2, Bits = 00, Arg1 = PS0, Arg2 = PS1, Arg3 = NNN, Type = C_FLT+0, Name = "FUCOMPP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0DD, Length = 2, Bits = 00, Arg1 = RST, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FFREE" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0DA, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVB" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C8DA, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVE" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D0DA, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVBE" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D8DA, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVU" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0DB, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVNB" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C8DB, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVNE" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D0DB, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVNBE" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D8DB, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCMOVNU" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F0DB, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCOMI" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F0DF, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FCOMIP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E8DB, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FUCOMI" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E8DF, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FUCOMIP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0D8, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FADD" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0DC, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FADD" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0DE, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FADDP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E0D8, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FSUB" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E8DC, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FSUB" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E8DE, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FSUBP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E8D8, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FSUBR" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E0DC, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FSUBR" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E0DE, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FSUBRP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C8D8, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FMUL" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C8DC, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FMUL" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C8DE, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FMULP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D0D8, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FCOM" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D8D8, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FCOMP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E0DD, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FUCOM" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00E8DD, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FUCOMP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F0D8, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FDIV" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F8DC, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FDIV" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F8DE, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FDIVP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F8D8, Length = 2, Bits = 00, Arg1 = RS0, Arg2 = RST, Arg3 = NNN, Type = C_FLT+0, Name = "FDIVR" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F0DC, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FDIVR" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00F0DE, Length = 2, Bits = 00, Arg1 = RST, Arg2 = RS0, Arg3 = NNN, Type = C_FLT+0, Name = "FDIVRP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C0D9, Length = 2, Bits = 00, Arg1 = RST, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLD" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D0DD, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FST" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00D8DD, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FSTP" }, new TCmdData() { Mask = 0x00F8FF, Code = 0x00C8D9, Length = 2, Bits = 00, Arg1 = RST, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+0, Name = "FXCH" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FADD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FADD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIADD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIADD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSUB" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSUB" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISUB" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISUB" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSUBR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSUBR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISUBR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISUBR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0008D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FMUL" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0008DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FMUL" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0008DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIMUL" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0008DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIMUL" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FCOM" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FCOM" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FCOMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FCOMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FDIV" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FDIV" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIDIV" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIDIV" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038D8, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FDIVR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038DC, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FDIVR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIDIVR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIDIVR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020DF, Length = 1, Bits = 00, Arg1 = MDA, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+C_RARE+1, Name = "FBLD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030DF, Length = 1, Bits = 00, Arg1 = MDA, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+C_RARE+1, Name = "FBSTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FICOM" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FICOM" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018DE, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FICOMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018DA, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FICOMP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000DF, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+1, Name = "FILD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000DB, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+1, Name = "FILD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028DF, Length = 1, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+1, Name = "FILD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010DF, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIST" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010DB, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FIST" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018DF, Length = 1, Bits = 00, Arg1 = MD2, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018DB, Length = 1, Bits = 00, Arg1 = MD4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038DF, Length = 1, Bits = 00, Arg1 = MD8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FISTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000D9, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+1, Name = "FLD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0000DD, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+1, Name = "FLD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028DB, Length = 1, Bits = 00, Arg1 = MFA, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+1, Name = "FLD" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010D9, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FST" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0010DD, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FST" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018D9, Length = 1, Bits = 00, Arg1 = MF4, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0018DD, Length = 1, Bits = 00, Arg1 = MF8, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038DB, Length = 1, Bits = 00, Arg1 = MFA, Arg2 = PS0, Arg3 = NNN, Type = C_FLT+1, Name = "FSTP" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0028D9, Length = 1, Bits = 00, Arg1 = MB2, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDCW" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038D9, Length = 1, Bits = 00, Arg1 = MB2, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSTCW" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020D9, Length = 1, Bits = 00, Arg1 = MFE, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FLDENV" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030D9, Length = 1, Bits = 00, Arg1 = MFE, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSTENV" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0020DD, Length = 1, Bits = 00, Arg1 = MFS, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FRSTOR" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0030DD, Length = 1, Bits = 00, Arg1 = MFS, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSAVE" }, new TCmdData() { Mask = 0x0038FF, Code = 0x0038DD, Length = 1, Bits = 00, Arg1 = MB2, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FSTSW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x08AE0F, Length = 2, Bits = 00, Arg1 = MFX, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FXRSTOR" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x00AE0F, Length = 2, Bits = 00, Arg1 = MFX, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FXSAVE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E0DB, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FENI" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E1DB, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_FLT+0, Name = "FDISI" }, // MMX instructions. Length of MMX operand fields (in bytes) is added to the // type, length of 0 means 8-byte MMX operand. new TCmdData() { Mask = 0x00FFFF, Code = 0x00770F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "EMMS" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006E0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR4, Arg3 = NNN, Type = C_MMX+0, Name = "MOVD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x007E0F, Length = 2, Bits = 00, Arg1 = MR4, Arg2 = RMX, Arg3 = NNN, Type = C_MMX+0, Name = "MOVD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "MOVQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x007F0F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = RMX, Arg3 = NNN, Type = C_MMX+0, Name = "MOVQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00630F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PACKSSWB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006B0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PACKSSDW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00670F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PACKUSWB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FC0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PADDB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FD0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PADDW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FE0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PADDD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F80F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PSUBB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F90F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PSUBW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00FA0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PSUBD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EC0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PADDSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00ED0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PADDSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E80F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PSUBSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E90F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PSUBSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00DC0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PADDUSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00DD0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PADDUSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D80F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PSUBUSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D90F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PSUBUSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00DB0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "PAND" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00DF0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "PANDN" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00740F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PCMPEQB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00750F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PCMPEQW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00760F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PCMPEQD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00640F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PCMPGTB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00650F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PCMPGTW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00660F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PCMPGTD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F50F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PMADDWD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E50F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PMULHW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D50F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PMULLW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EB0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "POR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F10F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PSLLW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x30710F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+2, Name = "PSLLW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F20F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PSLLD" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x30720F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+4, Name = "PSLLD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F30F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "PSLLQ" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x30730F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+0, Name = "PSLLQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E10F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PSRAW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x20710F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+2, Name = "PSRAW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E20F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PSRAD" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x20720F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+4, Name = "PSRAD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D10F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PSRLW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x10710F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+2, Name = "PSRLW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D20F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PSRLD" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x10720F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+4, Name = "PSRLD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D30F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "PSRLQ" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x10730F, Length = 2, Bits = 00, Arg1 = MR8, Arg2 = IM1, Arg3 = NNN, Type = C_MMX+0, Name = "PSRLQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00680F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PUNPCKHBW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00690F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PUNPCKHWD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006A0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PUNPCKHDQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00600F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PUNPCKLBW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00610F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PUNPCKLWD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00620F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+4, Name = "PUNPCKLDQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EF0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+0, Name = "PXOR" }, // AMD extentions to MMX command set (including Athlon/PIII extentions). new TCmdData() { Mask = 0x00FFFF, Code = 0x000E0F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "FEMMS" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x000D0F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "PREFETCH" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x080D0F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "PREFETCHW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F70F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = RR8, Arg3 = PDI, Type = C_MMX+1, Name = "MASKMOVQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E70F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = RMX, Arg3 = NNN, Type = C_MMX+0, Name = "MOVNTQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E00F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PAVGB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E30F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PAVGW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00C50F, Length = 2, Bits = 00, Arg1 = RR4, Arg2 = RMX, Arg3 = IM1, Type = C_MMX+2, Name = "PEXTRW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00C40F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR2, Arg3 = IM1, Type = C_MMX+2, Name = "PINSRW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EE0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PMAXSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00DE0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PMAXUB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00EA0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PMINSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00DA0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PMINUB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00D70F, Length = 2, Bits = 00, Arg1 = RG4, Arg2 = RR8, Arg3 = NNN, Type = C_MMX+1, Name = "PMOVMSKB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00E40F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+2, Name = "PMULHUW" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x00180F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "PREFETCHNTA" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x08180F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "PREFETCHT0" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x10180F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "PREFETCHT1" }, new TCmdData() { Mask = 0x38FFFF, Code = 0x18180F, Length = 2, Bits = 00, Arg1 = MD8, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "PREFETCHT2" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00F60F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_MMX+1, Name = "PSADBW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00700F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = IM1, Type = C_MMX+2, Name = "PSHUFW" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xF8AE0F, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_MMX+0, Name = "SFENCE" }, // AMD 3DNow! instructions (including Athlon extentions). new TCmdData() { Mask = 0x00FFFF, Code = 0xBF0F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_NOW+1, Name = "PAVGUSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x9E0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFADD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x9A0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFSUB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xAA0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFSUBR" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xAE0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFACC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x900F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFCMPGE" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xA00F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFCMPGT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xB00F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFCMPEQ" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x940F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFMIN" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xA40F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFMAX" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x0D0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MR8, Arg3 = NNN, Type = C_NOW+4, Name = "PI2FD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x1D0F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PF2ID" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x960F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFRCP" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x970F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFRSQRT" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xB40F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFMUL" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xA60F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFRCPIT1" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xA70F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFRSQIT1" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xB60F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFRCPIT2" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xB70F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MR8, Arg3 = NNN, Type = C_NOW+2, Name = "PMULHRW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x1C0F0F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PF2IW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x8A0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFNACC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x8E0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PFPNACC" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x0C0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MR8, Arg3 = NNN, Type = C_NOW+4, Name = "PI2FW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0xBB0F0F, Length = 2, Bits = 00, Arg1 = R3D, Arg2 = MRD, Arg3 = NNN, Type = C_NOW+4, Name = "PSWAPD" }, // Some alternative mnemonics for Assembler, not used by Disassembler (so // implicit pseudooperands are not marked). new TCmdData() { Mask = 0x0000FF, Code = 0x0000A6, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "CMPSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A766, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "CMPSW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000A7, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "CMPSD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000AC, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "LODSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AD66, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "LODSW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000AD, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "LODSD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000A4, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "MOVSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A566, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "MOVSW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000A5, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "MOVSD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000AE, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SCASB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AF66, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SCASW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000AF, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "SCASD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000AA, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "STOSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AB66, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "STOSW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000AB, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "STOSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A4F3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP MOVSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xA5F366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP MOVSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A5F3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP MOVSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00ACF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP LODSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xADF366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP LODSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00ADF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP LODSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AAF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP STOSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xABF366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP STOSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00ABF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP STOSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A6F3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPE CMPSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xA7F366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPE CMPSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A7F3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPE CMPSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AEF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPE SCASB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xAFF366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPE SCASW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AFF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPE SCASD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A6F2, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPNE CMPSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xA7F266, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPNE CMPSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00A7F2, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPNE CMPSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AEF2, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPNE SCASB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0xAFF266, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPNE SCASW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00AFF2, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REPNE SCASD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00006C, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "INSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006D66, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "INSW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00006D, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "INSD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00006E, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "OUTSB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006F66, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "OUTSW" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00006F, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+C_RARE+0, Name = "OUTSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006CF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP INSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0x6DF366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP INSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006DF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP INSD" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006EF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP OUTSB" }, new TCmdData() { Mask = 0xFFFFFF, Code = 0x6FF366, Length = 2, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP OUTSW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x006FF3, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_REP+0, Name = "REP OUTSD" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E1, Length = 1, Bits = 00, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "$LOOP*Z" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000E0, Length = 1, Bits = 00, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "$LOOP*NZ" }, new TCmdData() { Mask = 0x0000FF, Code = 0x00009B, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "FWAIT" }, new TCmdData() { Mask = 0x0000FF, Code = 0x0000D7, Length = 1, Bits = 00, Arg1 = NNN, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+0, Name = "XLATB" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x00C40F, Length = 2, Bits = 00, Arg1 = RMX, Arg2 = RR4, Arg3 = IM1, Type = C_MMX+2, Name = "PINSRW" }, new TCmdData() { Mask = 0x00FFFF, Code = 0x0020CD, Length = 2, Bits = 00, Arg1 = VXD, Arg2 = NNN, Arg3 = NNN, Type = C_CAL+C_RARE+0, Name = "VxDCall" }, // Pseudocommands used by Assembler for masked search only. new TCmdData() { Mask = 0x0000F0, Code = 0x000070, Length = 1, Bits = CC, Arg1 = JOB, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JCC" }, new TCmdData() { Mask = 0x00F0FF, Code = 0x00800F, Length = 2, Bits = CC, Arg1 = JOW, Arg2 = NNN, Arg3 = NNN, Type = C_JMC+0, Name = "JCC" }, new TCmdData() { Mask = 0x00F0FF, Code = 0x00900F, Length = 2, Bits = CC, Arg1 = MR1, Arg2 = NNN, Arg3 = NNN, Type = C_CMD+1, Name = "SETCC" }, new TCmdData() { Mask = 0x00F0FF, Code = 0x00400F, Length = 2, Bits = CC, Arg1 = REG, Arg2 = MRG, Arg3 = NNN, Type = C_CMD+0, Name = "CMOVCC" }, // End of command table. }; public static TCmdData[] VxdCmd = { new TCmdData() { Mask = 0x00FFFF, Code = 0x0020CD, Length = 2, Bits = 00, Arg1 = VXD, Arg2 = NNN, Arg3 =NNN, Type = C_CAL+C_RARE+0, Name = "VxDCall" } }; } }