/************************************************************************
* proctab.cpp *
* Tables of processor instructions. The whole of this file is full of *
* tables that I constructed some time ago. The main instruction tables *
* include three arguments for instructions, which was necessary to *
* easily include instructions like shld r/m16,r16,CL. I was maybe *
* overexcessive with the number of slightly different modr/ms that I *
* included but the tables have served well, and when you build them up *
* from scratch instruction by instruction you do actually find a lot of *
* slightly different encodings, and the modrm encodings generally *
* indicate what is actually being referenced (like a 16:32 pointer in *
* memory, etc). I included the Z80 processor because I knew the Z80 *
* processor quite well, but mostly just to show it isnt hard to do. *
* At one point I decided that I needed a uid for each instruction to *
* enable proper reconstruction of the disassembly from a saved database *
* and so each instruction also has a uid for this purpose. *
* Flags for modrm may seem excessive, but consider encodings like 0fae *
* which includes the strange sfence instruction with no arguments and a *
* code of 0fae /7, along with stmxcsr m32 with the encoding 0fae /3 *
* Hence the flag FLAGS_MODRM indicates a modrm byte. Any argument *
* encodings may indicate usage of that byte, but may not be present at *
* all. *
* Whilst I havent found any errors in here for some time it would need *
* a very careful analysis to find any which may be present. Certainly *
* newer instruction encodings (mmx, kni) may need more work, and it is *
* worth looking at decodings which should not be possible (eg forced *
* memory operands only may require looking at as some possible *
* instructions are illegal) *
************************************************************************/
#include <windows.h>
#include "proctab.h"
proctable procnames[]=
{ {PROC_8086,"8086",tables86},
{PROC_80286,"80286",tables86},
{PROC_80386,"80386",tables86},
{PROC_80486,"80486",tables86},
{PROC_PENTIUM,"Pentium",tables86},
{PROC_PENTIUMPRO,"Pentium Pro",tables86},
{PROC_PENTMMX,"Pentium MMX",tables86},
{PROC_PENTIUM2,"Pentium II with KNI",tables86},
{PROC_Z80,"Z-80",tablesz80},
{0,"",NULL}
};
char *reg32ascii[]={"eax","ecx","edx","ebx","esp","ebp","esi","edi"};
char *reg16ascii[]={"ax","cx","dx","bx","sp","bp","si","di"};
char *reg8ascii[]={"al","cl","dl","bl","ah","ch","dh","bh"};
char *regind16ascii[]={"bx+si","bx+di","bp+si","bp+di","si","di","bp","bx"};
char *regfascii[]={"st(0)","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"};
char *regmascii[]={"mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7"};
char *regxascii[]={"xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7"};
char *regsascii[]={"es","cs","ss","ds","fs","gs","??","??"};
char *regcascii[]={"cr0","cr1","cr2","cr3","cr4","cr5","cr6","cr7"};
char *regdascii[]={"dr0","dr1","dr2","dr3","dr4","dr5","dr6","dr7"};
char *regtascii[]={"tr0","tr1","tr2","tr3","tr4","tr5","tr6","tr7"};
char *regzascii[]={"b","c","d","e","h","l","(hl)","a"};
// to be filled in.
asminstdata asm86[]=
{ {"add",0x00,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,1},
{"add",0x01,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,2},
{"add",0x01,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,3},
{"add",0x02,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,4},
{"add",0x03,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,5},
{"add",0x03,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,6},
{"add",0x04,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,7},
{"add",0x05,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,8},
{"add",0x05,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,9},
{"push",0x06,PROC_FROM8086,0,ARG_REG_ES,ARG_NONE,ARG_NONE,10},
{"pop",0x07,PROC_FROM8086,0,ARG_REG_ES,ARG_NONE,ARG_NONE,11},
{"or",0x08,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,12},
{"or",0x09,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,13},
{"or",0x09,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,14},
{"or",0x0a,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,15},
{"or",0x0b,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,16},
{"or",0x0b,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,17},
{"or",0x0c,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,18},
{"or",0x0d,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,19},
{"or",0x0d,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,20},
{"push",0x0e,PROC_FROM8086,0,ARG_REG_CS,ARG_NONE,ARG_NONE,21},
{NULL,0x0f,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,22}, //subtable 0x0f
{"adc",0x10,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,23},
{"adc",0x11,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,24},
{"adc",0x11,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,25},
{"adc",0x12,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,26},
{"adc",0x13,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,27},
{"adc",0x13,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,28},
{"adc",0x14,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,29},
{"adc",0x15,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,30},
{"adc",0x15,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,31},
{"push",0x16,PROC_FROM8086,0,ARG_REG_SS,ARG_NONE,ARG_NONE,32},
{"pop",0x17,PROC_FROM8086,0,ARG_REG_SS,ARG_NONE,ARG_NONE,33},
{"sbb",0x18,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,34},
{"sbb",0x19,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,35},
{"sbb",0x19,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,36},
{"sbb",0x1a,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,37},
{"sbb",0x1b,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,38},
{"sbb",0x1b,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,39},
{"sbb",0x1c,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,40},
{"sbb",0x1d,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,41},
{"sbb",0x1d,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,42},
{"push",0x1e,PROC_FROM8086,0,ARG_REG_DS,ARG_NONE,ARG_NONE,43},
{"pop",0x1f,PROC_FROM8086,0,ARG_REG_DS,ARG_NONE,ARG_NONE,44},
{"and",0x20,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,45},
{"and",0x21,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,46},
{"and",0x21,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,47},
{"and",0x22,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,48},
{"and",0x23,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,49},
{"and",0x23,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,50},
{"and",0x24,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,51},
{"and",0x25,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,52},
{"and",0x25,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,53},
{"es:",0x26,PROC_FROM8086,FLAGS_SEGPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,54},
{"daa",0x27,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,55},
{"sub",0x28,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,56},
{"sub",0x29,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,57},
{"sub",0x29,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,58},
{"sub",0x2a,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,59},
{"sub",0x2b,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,60},
{"sub",0x2b,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,61},
{"sub",0x2c,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,62},
{"sub",0x2d,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,63},
{"sub",0x2d,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,64},
{"cs:",0x2e,PROC_FROM8086,FLAGS_SEGPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,65},
{"das",0x2f,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,66},
{"xor",0x30,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,67},
{"xor",0x31,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,68},
{"xor",0x31,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,69},
{"xor",0x32,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,70},
{"xor",0x33,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,71},
{"xor",0x33,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,72},
{"xor",0x34,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,73},
{"xor",0x35,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,74},
{"xor",0x35,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,75},
{"ss:",0x36,PROC_FROM8086,FLAGS_SEGPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,76},
{"aaa",0x37,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,77},
{"cmp",0x38,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,78},
{"cmp",0x39,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,79},
{"cmp",0x39,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,80},
{"cmp",0x3a,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,81},
{"cmp",0x3b,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,82},
{"cmp",0x3b,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,83},
{"cmp",0x3c,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,84},
{"cmp",0x3d,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,85},
{"cmp",0x3d,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,86},
{"ds:",0x3e,PROC_FROM8086,FLAGS_SEGPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,87},
{"aas",0x3f,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,88},
{"inc",0x40,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_NONE,ARG_NONE,89},
{"inc",0x40,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_NONE,ARG_NONE,90},
{"inc",0x41,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_CX,ARG_NONE,ARG_NONE,91},
{"inc",0x41,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_CX,ARG_NONE,ARG_NONE,92},
{"inc",0x42,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DX,ARG_NONE,ARG_NONE,93},
{"inc",0x42,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DX,ARG_NONE,ARG_NONE,94},
{"inc",0x43,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BX,ARG_NONE,ARG_NONE,95},
{"inc",0x43,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BX,ARG_NONE,ARG_NONE,96},
{"inc",0x44,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SP,ARG_NONE,ARG_NONE,97},
{"inc",0x44,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SP,ARG_NONE,ARG_NONE,98},
{"inc",0x45,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BP,ARG_NONE,ARG_NONE,99},
{"inc",0x45,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BP,ARG_NONE,ARG_NONE,100},
{"inc",0x46,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SI,ARG_NONE,ARG_NONE,101},
{"inc",0x46,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SI,ARG_NONE,ARG_NONE,102},
{"inc",0x47,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DI,ARG_NONE,ARG_NONE,103},
{"inc",0x47,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DI,ARG_NONE,ARG_NONE,104},
{"dec",0x48,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_NONE,ARG_NONE,105},
{"dec",0x48,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_NONE,ARG_NONE,106},
{"dec",0x49,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_CX,ARG_NONE,ARG_NONE,107},
{"dec",0x49,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_CX,ARG_NONE,ARG_NONE,108},
{"dec",0x4a,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DX,ARG_NONE,ARG_NONE,109},
{"dec",0x4a,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DX,ARG_NONE,ARG_NONE,110},
{"dec",0x4b,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BX,ARG_NONE,ARG_NONE,111},
{"dec",0x4b,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BX,ARG_NONE,ARG_NONE,112},
{"dec",0x4c,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SP,ARG_NONE,ARG_NONE,113},
{"dec",0x4c,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SP,ARG_NONE,ARG_NONE,114},
{"dec",0x4d,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BP,ARG_NONE,ARG_NONE,115},
{"dec",0x4d,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BP,ARG_NONE,ARG_NONE,116},
{"dec",0x4e,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SI,ARG_NONE,ARG_NONE,117},
{"dec",0x4e,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SI,ARG_NONE,ARG_NONE,118},
{"dec",0x4f,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DI,ARG_NONE,ARG_NONE,119},
{"dec",0x4f,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DI,ARG_NONE,ARG_NONE,120},
{"push",0x50,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_NONE,ARG_NONE,121},
{"push",0x50,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_NONE,ARG_NONE,122},
{"push",0x51,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_CX,ARG_NONE,ARG_NONE,123},
{"push",0x51,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_CX,ARG_NONE,ARG_NONE,124},
{"push",0x52,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DX,ARG_NONE,ARG_NONE,125},
{"push",0x52,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DX,ARG_NONE,ARG_NONE,126},
{"push",0x53,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BX,ARG_NONE,ARG_NONE,127},
{"push",0x53,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BX,ARG_NONE,ARG_NONE,128},
{"push",0x54,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SP,ARG_NONE,ARG_NONE,129},
{"push",0x54,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SP,ARG_NONE,ARG_NONE,130},
{"push",0x55,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BP,ARG_NONE,ARG_NONE,131},
{"push",0x55,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BP,ARG_NONE,ARG_NONE,132},
{"push",0x56,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SI,ARG_NONE,ARG_NONE,133},
{"push",0x56,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SI,ARG_NONE,ARG_NONE,134},
{"push",0x57,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DI,ARG_NONE,ARG_NONE,135},
{"push",0x57,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DI,ARG_NONE,ARG_NONE,136},
{"pop",0x58,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_NONE,ARG_NONE,137},
{"pop",0x58,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_NONE,ARG_NONE,138},
{"pop",0x59,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_CX,ARG_NONE,ARG_NONE,139},
{"pop",0x59,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_CX,ARG_NONE,ARG_NONE,140},
{"pop",0x5a,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DX,ARG_NONE,ARG_NONE,141},
{"pop",0x5a,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DX,ARG_NONE,ARG_NONE,142},
{"pop",0x5b,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BX,ARG_NONE,ARG_NONE,143},
{"pop",0x5b,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BX,ARG_NONE,ARG_NONE,144},
{"pop",0x5c,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SP,ARG_NONE,ARG_NONE,145},
{"pop",0x5c,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SP,ARG_NONE,ARG_NONE,146},
{"pop",0x5d,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BP,ARG_NONE,ARG_NONE,147},
{"pop",0x5d,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BP,ARG_NONE,ARG_NONE,148},
{"pop",0x5e,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SI,ARG_NONE,ARG_NONE,149},
{"pop",0x5e,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SI,ARG_NONE,ARG_NONE,150},
{"pop",0x5f,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DI,ARG_NONE,ARG_NONE,151},
{"pop",0x5f,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DI,ARG_NONE,ARG_NONE,152},
{"pusha",0x60,PROC_FROM80286,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,153},
{"pushad",0x60,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,154},
{"popa",0x61,PROC_FROM80286,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,155},
{"popad",0x61,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,156},
{"bound",0x62,PROC_FROM80286,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,157},
{"arpl",0x63,PROC_FROM80286,FLAGS_PMODE|FLAGS_16BIT|FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,158},
{"fs:",0x64,PROC_FROM80386,FLAGS_SEGPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,159},
{"gs:",0x65,PROC_FROM80386,FLAGS_SEGPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,160},
{"",0x66,PROC_FROM80386,FLAGS_OPERPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,161},
{"",0x67,PROC_FROM80386,FLAGS_ADDRPREFIX,ARG_NONE,ARG_NONE,ARG_NONE,162},
{"push",0x68,PROC_FROM80286,FLAGS_OMODE16,ARG_IMM,ARG_NONE,ARG_NONE,163},
{"push",0x68,PROC_FROM80386,FLAGS_OMODE32,ARG_IMM,ARG_NONE,ARG_NONE,164},
{"imul",0x69,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_IMM,165},
{"push",0x6a,PROC_FROM80286,0,ARG_IMM8,ARG_NONE,ARG_NONE,166},
{"imul",0x6b,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_IMM8,167},
{"insb",0x6c,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,168},
{"insw",0x6d,PROC_FROM80286,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,169},
{"insd",0x6d,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,170},
{"outsb",0x6e,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,171},
{"outsw",0x6f,PROC_FROM80286,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,172},
{"outsd",0x6f,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,173},
{"jo",0x70,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,174},
{"jno",0x71,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,175},
{"jc",0x72,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,176},
{"jnc",0x73,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,177},
{"jz",0x74,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,178},
{"jnz",0x75,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,179},
{"jbe",0x76,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,180},
{"ja",0x77,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,181},
{"js",0x78,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,182},
{"jns",0x79,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,183},
{"jpe",0x7a,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,184},
{"jpo",0x7b,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,185},
{"jl",0x7c,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,186},
{"jge",0x7d,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,187},
{"jle",0x7e,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,188},
{"jg",0x7f,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,189},
{NULL,0x80,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,190}, //subtable 0x80
{NULL,0x81,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,191}, //subtable 0x81
{NULL,0x82,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,192}, //subtable 0x82
{NULL,0x83,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,193}, //subtable 0x83
{"test",0x84,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,194},
{"test",0x85,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,195},
{"test",0x85,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,196},
{"xchg",0x86,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,197},
{"xchg",0x87,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,198},
{"xchg",0x87,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,199},
{"mov",0x88,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,200},
{"mov",0x89,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG,ARG_NONE,201},
{"mov",0x89,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG,ARG_NONE,202},
{"mov",0x8a,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG,ARG_MODRM,ARG_NONE,203},
{"mov",0x8b,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,204},
{"mov",0x8b,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,205},
{"mov",0x8c,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM,ARG_SREG,ARG_NONE,206},
{"lea",0x8d,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,207},
{"lea",0x8d,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,208},
{"mov",0x8e,PROC_FROM8086,FLAGS_MODRM,ARG_SREG,ARG_MODRM,ARG_NONE,209},
{"pop",0x8f,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,210},
{"pop",0x8f,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,211},
{"nop",0x90,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,212},
{"xchg",0x91,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_CX,ARG_NONE,213},
{"xchg",0x91,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_CX,ARG_NONE,214},
{"xchg",0x92,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_DX,ARG_NONE,215},
{"xchg",0x92,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_DX,ARG_NONE,216},
{"xchg",0x93,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_BX,ARG_NONE,217},
{"xchg",0x93,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_BX,ARG_NONE,218},
{"xchg",0x94,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_SP,ARG_NONE,219},
{"xchg",0x94,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_SP,ARG_NONE,220},
{"xchg",0x95,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_BP,ARG_NONE,221},
{"xchg",0x95,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_BP,ARG_NONE,222},
{"xchg",0x96,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_SI,ARG_NONE,223},
{"xchg",0x96,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_SI,ARG_NONE,224},
{"xchg",0x97,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_REG_DI,ARG_NONE,225},
{"xchg",0x97,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_REG_DI,ARG_NONE,226},
{"cbw",0x98,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,227},
{"cwde",0x98,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,228},
{"cwd",0x99,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,229},
{"cdq",0x99,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,230},
{"callf",0x9a,PROC_FROM8086,FLAGS_CALL|FLAGS_OMODE16,ARG_FADDR,ARG_NONE,ARG_NONE,231},
{"callf",0x9a,PROC_FROM80386,FLAGS_CALL|FLAGS_OMODE32,ARG_FADDR,ARG_NONE,ARG_NONE,232},
{"wait",0x9b,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,233},
{"pushf",0x9c,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,234},
{"pushfd",0x9c,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,235},
{"popf",0x9d,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,236},
{"popfd",0x9d,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,237},
{"sahf",0x9e,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,238},
{"lahf",0x9f,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,239},
{"mov",0xa0,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_MEMLOC,ARG_NONE,240},
{"mov",0xa1,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_MEMLOC,ARG_NONE,241},
{"mov",0xa1,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_MEMLOC,ARG_NONE,242},
{"mov",0xa2,PROC_FROM8086,FLAGS_8BIT,ARG_MEMLOC,ARG_REG_AL,ARG_NONE,243},
{"mov",0xa3,PROC_FROM8086,FLAGS_OMODE16,ARG_MEMLOC,ARG_REG_AX,ARG_NONE,244},
{"mov",0xa3,PROC_FROM80386,FLAGS_OMODE32,ARG_MEMLOC,ARG_REG_AX,ARG_NONE,245},
{"movsb",0xa4,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,246},
{"movsw",0xa5,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,247},
{"movsd",0xa5,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,248},
{"cmpsb",0xa6,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,249},
{"cmpsw",0xa7,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,250},
{"cmpsd",0xa7,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,251},
{"test",0xa8,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,252},
{"test",0xa9,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,253},
{"test",0xa9,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,254},
{"stosb",0xaa,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,255},
{"stosw",0xab,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,256},
{"stosd",0xab,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,257},
{"lodsb",0xac,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,258},
{"lodsw",0xad,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,259},
{"lodsd",0xad,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,260},
{"scasb",0xae,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,261},
{"scasw",0xaf,PROC_FROM8086,FLAGS_OMODE16,ARG_NONE,ARG_NONE,ARG_NONE,262},
{"scasd",0xaf,PROC_FROM80386,FLAGS_OMODE32,ARG_NONE,ARG_NONE,ARG_NONE,263},
{"mov",0xb0,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,264},
{"mov",0xb1,PROC_FROM8086,FLAGS_8BIT,ARG_REG_CL,ARG_IMM8,ARG_NONE,265},
{"mov",0xb2,PROC_FROM8086,FLAGS_8BIT,ARG_REG_DL,ARG_IMM8,ARG_NONE,266},
{"mov",0xb3,PROC_FROM8086,FLAGS_8BIT,ARG_REG_BL,ARG_IMM8,ARG_NONE,267},
{"mov",0xb4,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AH,ARG_IMM8,ARG_NONE,268},
{"mov",0xb5,PROC_FROM8086,FLAGS_8BIT,ARG_REG_CH,ARG_IMM8,ARG_NONE,269},
{"mov",0xb6,PROC_FROM8086,FLAGS_8BIT,ARG_REG_DH,ARG_IMM8,ARG_NONE,270},
{"mov",0xb7,PROC_FROM8086,FLAGS_8BIT,ARG_REG_BH,ARG_IMM8,ARG_NONE,271},
{"mov",0xb8,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM,ARG_NONE,272},
{"mov",0xb8,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM,ARG_NONE,273},
{"mov",0xb9,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_CX,ARG_IMM,ARG_NONE,274},
{"mov",0xb9,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_CX,ARG_IMM,ARG_NONE,275},
{"mov",0xba,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DX,ARG_IMM,ARG_NONE,276},
{"mov",0xba,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DX,ARG_IMM,ARG_NONE,277},
{"mov",0xbb,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BX,ARG_IMM,ARG_NONE,278},
{"mov",0xbb,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BX,ARG_IMM,ARG_NONE,279},
{"mov",0xbc,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SP,ARG_IMM,ARG_NONE,280},
{"mov",0xbc,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SP,ARG_IMM,ARG_NONE,281},
{"mov",0xbd,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_BP,ARG_IMM,ARG_NONE,282},
{"mov",0xbd,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_BP,ARG_IMM,ARG_NONE,283},
{"mov",0xbe,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_SI,ARG_IMM,ARG_NONE,284},
{"mov",0xbe,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_SI,ARG_IMM,ARG_NONE,285},
{"mov",0xbf,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_DI,ARG_IMM,ARG_NONE,286},
{"mov",0xbf,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_DI,ARG_IMM,ARG_NONE,287},
{NULL,0xc0,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,288}, //subtable 0xc0
{NULL,0xc1,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,289}, //subtable 0xc1
{"ret",0xc2,PROC_FROM8086,FLAGS_16BIT|FLAGS_RET,ARG_IMM,ARG_NONE,ARG_NONE,290},
{"ret",0xc3,PROC_FROM8086,FLAGS_RET,ARG_NONE,ARG_NONE,ARG_NONE,291},
{"les",0xc4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,292},
{"les",0xc4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,293},
{"lds",0xc5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,294},
{"lds",0xc5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,295},
{"mov",0xc6,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,296},
{"mov",0xc7,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,297},
{"mov",0xc7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,298},
{"enter",0xc8,PROC_FROM80286,FLAGS_16BIT,ARG_IMM16_A,ARG_IMM8,ARG_NONE,299},
{"leave",0xc9,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,300},
{"retf",0xca,PROC_FROM8086,FLAGS_16BIT|FLAGS_RET,ARG_IMM,ARG_NONE,ARG_NONE,301},
{"retf",0xcb,PROC_FROM8086,FLAGS_RET,ARG_NONE,ARG_NONE,ARG_NONE,302},
{"int 3",0xcc,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,303},
{"int",0xcd,PROC_FROM8086,FLAGS_8BIT,ARG_IMM8,ARG_NONE,ARG_NONE,304},
{"into",0xce,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,305},
{"iret",0xcf,PROC_FROM8086,FLAGS_RET,ARG_NONE,ARG_NONE,ARG_NONE,306},
{NULL,0xd0,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,307}, //subtable 0xd0
{NULL,0xd1,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,308}, //subtable 0xd1
{NULL,0xd2,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,309}, //subtable 0xd2
{NULL,0xd3,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,310}, //subtable 0xd3
{"aam",0xd4,PROC_FROM8086,FLAGS_8BIT,ARG_IMM8,ARG_NONE,ARG_NONE,311},
{"aad",0xd5,PROC_FROM8086,FLAGS_8BIT,ARG_IMM8,ARG_NONE,ARG_NONE,312},
{"setalc",0xd6,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,313}, //UNDOCUMENTED
{"xlat",0xd7,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,314},
{NULL,0xd8,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,315}, //subtable 0xd8
{NULL,0xd9,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,316}, //subtable 0xd9
{NULL,0xda,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,317}, //subtable 0xda
{NULL,0xdb,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,318}, //subtable 0xdb
{NULL,0xdc,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,319}, //subtable 0xdc
{NULL,0xdd,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,320}, //subtable 0xdd
{NULL,0xde,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,321}, //subtable 0xde
{NULL,0xdf,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,322}, //subtable 0xdf
{"loopnz",0xe0,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,323},
{"loopz",0xe1,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,324},
{"loop",0xe2,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,325},
{"jcxz",0xe3,PROC_FROM8086,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,326},
{"in",0xe4,PROC_FROM8086,FLAGS_8BIT,ARG_REG_AL,ARG_IMM8,ARG_NONE,327},
{"in",0xe5,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_IMM8,ARG_NONE,328},
{"in",0xe5,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_IMM8,ARG_NONE,329},
{"out",0xe6,PROC_FROM8086,FLAGS_8BIT,ARG_IMM8,ARG_REG_AL,ARG_NONE,330},
{"out",0xe7,PROC_FROM8086,FLAGS_OMODE16,ARG_IMM8,ARG_REG_AX,ARG_NONE,331},
{"out",0xe7,PROC_FROM80386,FLAGS_OMODE32,ARG_IMM8,ARG_REG_AX,ARG_NONE,332},
{"call",0xe8,PROC_FROM8086,FLAGS_CALL|FLAGS_OMODE16,ARG_RELIMM,ARG_NONE,ARG_NONE,333},
{"call",0xe8,PROC_FROM80386,FLAGS_CALL|FLAGS_OMODE32,ARG_RELIMM,ARG_NONE,ARG_NONE,334},
{"jmp",0xe9,PROC_FROM8086,FLAGS_JMP|FLAGS_OMODE16,ARG_RELIMM,ARG_NONE,ARG_NONE,335},
{"jmp",0xe9,PROC_FROM80386,FLAGS_JMP|FLAGS_OMODE32,ARG_RELIMM,ARG_NONE,ARG_NONE,336},
{"jmp",0xea,PROC_FROM8086,FLAGS_JMP|FLAGS_OMODE16,ARG_FADDR,ARG_NONE,ARG_NONE,337},
{"jmp",0xea,PROC_FROM80386,FLAGS_JMP|FLAGS_OMODE32,ARG_FADDR,ARG_NONE,ARG_NONE,338},
{"jmp",0xeb,PROC_FROM8086,FLAGS_JMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,339},
{"in",0xec,PROC_FROM8086,0,ARG_REG_AL,ARG_16REG_DX,ARG_NONE,340},
{"in",0xed,PROC_FROM8086,FLAGS_OMODE16,ARG_REG_AX,ARG_16REG_DX,ARG_NONE,341},
{"in",0xed,PROC_FROM80386,FLAGS_OMODE32,ARG_REG_AX,ARG_16REG_DX,ARG_NONE,342},
{"out",0xee,PROC_FROM8086,0,ARG_16REG_DX,ARG_REG_AL,ARG_NONE,343},
{"out",0xef,PROC_FROM8086,FLAGS_OMODE16,ARG_16REG_DX,ARG_REG_AX,ARG_NONE,344},
{"out",0xef,PROC_FROM80386,FLAGS_OMODE32,ARG_16REG_DX,ARG_REG_AX,ARG_NONE,345},
{"lock:",0xf0,PROC_FROM8086,FLAGS_PREFIX,ARG_NONE,ARG_NONE,ARG_NONE,346},
{"smi",0xf1,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,347}, //UNDOCUMENTED/AMD ?
{"repne:",0xf2,PROC_FROM8086,FLAGS_PREFIX,ARG_NONE,ARG_NONE,ARG_NONE,348},
{"rep:",0xf3,PROC_FROM8086,FLAGS_PREFIX,ARG_NONE,ARG_NONE,ARG_NONE,349},
{"hlt",0xf4,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,350},
{"cmc",0xf5,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,351},
{NULL,0xf6,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,352}, //subtable 0xf6
{NULL,0xf7,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,353}, //subtable 0xf7
{"clc",0xf8,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,354},
{"stc",0xf9,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,355},
{"cli",0xfa,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,356},
{"sti",0xfb,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,357},
{"cld",0xfc,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,358},
{"std",0xfd,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,359},
{NULL,0xfe,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,360}, //subtable 0xfe
{NULL,0xff,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,361}, //subtable 0xff
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
//Subtables needed - 0x0f, 0x80, 0x81, 0x82, 0x83, 0xc0, 0xc1, ***done!
// 0xd0, 0xd1, 0xd2, 0xd3, 0xf6, 0xf7, 0xfe, 0xff ***done!
// 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf - FPU instructions
// 0x0f subtables : 0x00, 0x01, 0x18, 0x71, 0x72, 0x73, 0xae, 0xba, 0xc7 ***done!
//nb some instructions change when they have a segment overrider eg xlat.
// - how will this go in ?
//need to check undocumented instructions/amd insts- args/size/etc
//- setalc, smi
// subtable 0x0f
asminstdata asm86sub0f[]=
{ {NULL,0x00,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,1000}, //subtable 0x0f/0x00
{NULL,0x01,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,1001}, //subtable 0x0f/0x01
{"lar",0x02,PROC_FROM80286,FLAGS_PMODE|FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,1002},
{"lar",0x02,PROC_FROM80386,FLAGS_PMODE|FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,1003},
{"lsl",0x03,PROC_FROM80286,FLAGS_PMODE|FLAGS_MODRM|FLAGS_OMODE16,ARG_REG,ARG_MODRM,ARG_NONE,1004},
{"lsl",0x03,PROC_FROM80386,FLAGS_PMODE|FLAGS_MODRM|FLAGS_OMODE32,ARG_REG,ARG_MODRM,ARG_NONE,1005},
{"clts",0x06,PROC_FROM80286,FLAGS_PMODE,ARG_NONE,ARG_NONE,ARG_NONE,1006},
{"invd",0x08,PROC_FROM80486,0,ARG_NONE,ARG_NONE,ARG_NONE,1007},
{"wbinvd",0x09,PROC_FROM80486,0,ARG_NONE,ARG_NONE,ARG_NONE,1008},
{"cflsh",0x0a,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,1009},
{"ud2",0x0b,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,1010},
{"movups",0x10,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1011},
{"movups",0x11,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XMMMODRM,ARG_XREG,ARG_NONE,1012},
{"movlps",0x12,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1013},
{"movlps",0x13,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XMMMODRM,ARG_XREG,ARG_NONE,1014},
{"unpcklps",0x14,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1015},
{"unpckhps",0x15,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1016},
{"movhps",0x16,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1017},
{"movhps",0x17,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XMMMODRM,ARG_XREG,ARG_NONE,1018},
{NULL,0x18,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,1019}, // subtable 0x0f/0x18
{"mov",0x20,PROC_FROM80386,FLAGS_MODRM|FLAGS_32BIT,ARG_MODREG,ARG_CREG,ARG_NONE,1020},
{"mov",0x21,PROC_FROM80386,FLAGS_MODRM|FLAGS_32BIT,ARG_MODREG,ARG_DREG,ARG_NONE,1021},
{"mov",0x22,PROC_FROM80386,FLAGS_MODRM|FLAGS_32BIT,ARG_CREG,ARG_MODREG,ARG_NONE,1022},
{"mov",0x23,PROC_FROM80386,FLAGS_MODRM|FLAGS_32BIT,ARG_DREG,ARG_MODREG,ARG_NONE,1023},
{"mov",0x24,PROC_80386|PROC_80486,FLAGS_MODRM|FLAGS_32BIT,ARG_MODREG,ARG_TREG_67,ARG_NONE,1024},
{"mov",0x26,PROC_80386|PROC_80486,FLAGS_MODRM|FLAGS_32BIT,ARG_MODREG,ARG_TREG,ARG_NONE,1025},
{"movaps",0x28,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1026},
{"movaps",0x29,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XMMMODRM,ARG_XREG,ARG_NONE,1027},
{"cvtpi2ps",0x2a,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_MMXMODRM,ARG_NONE,1028},
{"movntps",0x2b,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XMMMODRM,ARG_XREG,ARG_NONE,1029},
{"cvttps2pi",0x2c,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_XMMMODRM,ARG_NONE,1030},
{"cvtps2pi",0x2d,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_XMMMODRM,ARG_NONE,1031},
{"ucomiss",0x2e,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1032},
{"comiss",0x2f,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1033},
{"wrmsr",0x30,PROC_FROMPENTIUM,0,ARG_NONE,ARG_NONE,ARG_NONE,1034},
{"rdtsc",0x31,PROC_FROMPENTIUM,0,ARG_NONE,ARG_NONE,ARG_NONE,1035},
{"rdmsr",0x32,PROC_FROMPENTIUM,0,ARG_NONE,ARG_NONE,ARG_NONE,1036},
{"rdpmc",0x33,PROC_FROMPENTPRO,0,ARG_NONE,ARG_NONE,ARG_NONE,1037},
{"sysenter",0x34,PROC_FROMPENTIUM2,0,ARG_NONE,ARG_NONE,ARG_NONE,1038},
{"sysexit",0x35,PROC_FROMPENTIUM2,0,ARG_NONE,ARG_NONE,ARG_NONE,1039},
{"cmovo",0x40,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1040},
{"cmovno",0x41,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1041},
{"cmovc",0x42,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1042},
{"cmovnc",0x43,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1043},
{"cmovz",0x44,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1044},
{"cmovnz",0x45,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1045},
{"cmovbe",0x46,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1046},
{"cmova",0x47,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1047},
{"cmovs",0x48,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1048},
{"cmovns",0x49,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1049},
{"cmovpe",0x4a,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1050},
{"cmovpo",0x4b,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1051},
{"cmovl",0x4c,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1052},
{"cmovge",0x4d,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1053},
{"cmovle",0x4e,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1054},
{"cmovg",0x4f,PROC_FROMPENTPRO,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1055},
{"movmskps",0x50,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_REG,ARG_XMMMODRM,ARG_NONE,1056},
{"sqrtps",0x51,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1057},
{"rsqrtps",0x52,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1058},
{"rcpps",0x53,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1059},
{"andps",0x54,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1060},
{"andnps",0x55,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1061},
{"orps",0x56,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1062},
{"xorps",0x57,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1063},
{"addps",0x58,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1064},
{"mulps",0x59,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1065},
{"subps",0x5c,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1066},
{"minps",0x5d,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1067},
{"divps",0x5e,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1068},
{"maxps",0x5f,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,1069},
{"punpcklbw",0x60,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1070},
{"punpcklwd",0x61,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1071},
{"punpckldq",0x62,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1072},
{"packsswb",0x63,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1073},
{"pcmpgtb",0x64,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1074},
{"pcmpgtw",0x65,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1075},
{"pcmpgtd",0x66,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1076},
{"packuswb",0x67,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1077},
{"punpckhbw",0x68,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1078},
{"punpckhwd",0x69,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1079},
{"punpckhdq",0x6a,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1080},
{"packssdw",0x6b,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1081},
{"movd",0x6e,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MODRM,ARG_NONE,1082},
{"movq",0x6f,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1083},
{"pshuf",0x70,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_IMM8,1084},
{NULL,0x71,PROC_FROMPENTMMX,0,ARG_NONE,ARG_NONE,ARG_NONE,1085}, //subtable 0x0f/0x71
{NULL,0x72,PROC_FROMPENTMMX,0,ARG_NONE,ARG_NONE,ARG_NONE,1086}, //subtable 0x0f/0x72
{NULL,0x73,PROC_FROMPENTMMX,0,ARG_NONE,ARG_NONE,ARG_NONE,1087}, //subtable 0x0f/0x73
{"pcmpeqb",0x74,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1088},
{"pcmpeqw",0x75,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1089},
{"pcmpeqd",0x76,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1090},
{"emms",0x77,PROC_FROMPENTMMX,0,ARG_NONE,ARG_NONE,ARG_NONE,1091},
{"movd",0x7e,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MODRM,ARG_MREG,ARG_NONE,1092},
{"movq",0x7f,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_MREG,ARG_NONE,1093},
{"jo",0x80,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1094},
{"jno",0x81,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1095},
{"jc",0x82,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1096},
{"jnc",0x83,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1097},
{"jz",0x84,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1098},
{"jnz",0x85,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1099},
{"jbe",0x86,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1100},
{"ja",0x87,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1101},
{"js",0x88,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1102},
{"jns",0x89,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1103},
{"jpe",0x8a,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1104},
{"jpo",0x8b,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1105},
{"jl",0x8c,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1106},
{"jge",0x8d,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1107},
{"jle",0x8e,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1108},
{"jg",0x8f,PROC_FROM80386,FLAGS_CJMP,ARG_RELIMM,ARG_NONE,ARG_NONE,1109},
{"seto",0x90,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1110},
{"setno",0x91,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1111},
{"setc",0x92,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1112},
{"setnc",0x93,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1113},
{"setz",0x94,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1114},
{"setnz",0x95,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1115},
{"setbe",0x96,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1116},
{"seta",0x97,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1117},
{"sets",0x98,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1118},
{"setns",0x99,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1119},
{"setpe",0x9a,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1120},
{"setpo",0x9b,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1121},
{"setl",0x9c,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1122},
{"setge",0x9d,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1123},
{"setle",0x9e,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1124},
{"setg",0x9f,PROC_FROM80386,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,1125},
{"push",0xa0,PROC_FROM80386,0,ARG_REG_FS,ARG_NONE,ARG_NONE,1126},
{"pop",0xa1,PROC_FROM80386,0,ARG_REG_FS,ARG_NONE,ARG_NONE,1127},
{"cpuid",0xa2,PROC_FROM80486,0,ARG_NONE,ARG_NONE,ARG_NONE,1128},
{"bt",0xa3,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_NONE,1129},
{"shld",0xa4,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_IMM8,1130},
{"shld",0xa5,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_REG_CL,1131},
{"push",0xa8,PROC_FROM80386,0,ARG_REG_GS,ARG_NONE,ARG_NONE,1132},
{"pop",0xa9,PROC_FROM80386,0,ARG_REG_GS,ARG_NONE,ARG_NONE,1133},
{"rsm",0xaa,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,1134},
{"bts",0xab,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_NONE,1135},
{"shrd",0xac,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_IMM8,1136},
{"shrd",0xad,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_REG_CL,1137},
{NULL,0xae,PROC_FROMPENTIUM2,0,ARG_NONE,ARG_NONE,ARG_NONE,1138}, //subtable 0x0f/0xae
{"imul",0xaf,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1139},
{"cmpxchg",0xb0,PROC_FROM80486,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,1140},
{"cmpxchg",0xb1,PROC_FROM80486,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_NONE,1141},
{"lss",0xb2,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1142},
{"btr",0xb3,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_NONE,1143},
{"lfs",0xb4,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1144},
{"lgs",0xb5,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1145},
{"movzx",0xb6,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM8,ARG_NONE,1146},
{"movzx",0xb7,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM16,ARG_NONE,1147},
{"ud1",0xb9,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,1148},
{NULL,0xba,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,1149}, //subtable 0x0f/0xba
{"btc",0xbb,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_REG,ARG_NONE,1150},
{"bsf",0xbc,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1151},
{"bsr",0xbd,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM,ARG_NONE,1152},
{"movsx",0xbe,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM8,ARG_NONE,1153},
{"movsx",0xbf,PROC_FROM80386,FLAGS_MODRM,ARG_REG,ARG_MODRM16,ARG_NONE,1154},
{"xadd",0xc0,PROC_FROM80486,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG,ARG_NONE,1155},
{"xadd",0xc1,PROC_FROM80486,FLAGS_MODRM,ARG_MODRM,ARG_NONE,ARG_NONE,1156},
{NULL,0xc2,PROC_FROMPENTIUM2,0,ARG_NONE,ARG_NONE,ARG_NONE,1157}, //subtable 0x0f/0xc7
{"pinsrw",0xc4,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MODRM,ARG_IMM8,1158},
{"pextrw",0xc5,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_REG,ARG_MMXMODRM,ARG_IMM8,1159},
{"shufps",0xc6,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_IMM8,1160},
{NULL,0xc7,PROC_FROMPENTMMX,0,ARG_NONE,ARG_NONE,ARG_NONE,1161}, //subtable 0x0f/0xc7
{"bswap",0xc8,PROC_FROM80486,FLAGS_32BIT,ARG_REG_AX,ARG_NONE,ARG_NONE,1162},
{"bswap",0xc9,PROC_FROM80486,FLAGS_32BIT,ARG_REG_CX,ARG_NONE,ARG_NONE,1163},
{"bswap",0xca,PROC_FROM80486,FLAGS_32BIT,ARG_REG_DX,ARG_NONE,ARG_NONE,1164},
{"bswap",0xcb,PROC_FROM80486,FLAGS_32BIT,ARG_REG_BX,ARG_NONE,ARG_NONE,1165},
{"bswap",0xcc,PROC_FROM80486,FLAGS_32BIT,ARG_REG_SP,ARG_NONE,ARG_NONE,1166},
{"bswap",0xcd,PROC_FROM80486,FLAGS_32BIT,ARG_REG_BP,ARG_NONE,ARG_NONE,1167},
{"bswap",0xce,PROC_FROM80486,FLAGS_32BIT,ARG_REG_SI,ARG_NONE,ARG_NONE,1168},
{"bswap",0xcf,PROC_FROM80486,FLAGS_32BIT,ARG_REG_DI,ARG_NONE,ARG_NONE,1169},
{"psrlw",0xd1,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1170},
{"psrld",0xd2,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1171},
{"psrlq",0xd3,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1172},
{"pmullw",0xd5,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1173},
{"pmovmskb",0xd7,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_REG,ARG_MMXMODRM,ARG_NONE,1174},
{"psubusb",0xd8,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1175},
{"psubusw",0xd9,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1176},
{"pminub",0xda,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1177},
{"pand",0xdb,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1178},
{"paddusb",0xdc,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1179},
{"paddusw",0xdd,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1180},
{"pmaxub",0xde,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1181},
{"pandn",0xdf,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1182},
{"pavgb",0xe0,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1183},
{"psraw",0xe1,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1184},
{"psrad",0xe2,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1185},
{"pavgw",0xe3,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1186},
{"pmulhuw",0xe4,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1187},
{"pmulhw",0xe5,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1188},
{"movntq",0xe7,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_MREG,ARG_NONE,1189},
{"psubsb",0xe8,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1190},
{"psubsw",0xe9,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1191},
{"pminsw",0xea,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1192},
{"por",0xeb,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1193},
{"paddsb",0xec,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1194},
{"paddsw",0xed,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1195},
{"pmaxsw",0xee,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1196},
{"pxor",0xef,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1197},
{"psllw",0xf1,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1198},
{"pslld",0xf2,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1199},
{"psllq",0xf3,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1200},
{"pmaddwd",0xf5,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1201},
{"psadbw",0xf6,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1202},
{"maskmovq",0xf7,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1203},
{"psubb",0xf8,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1204},
{"psubw",0xf9,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1205},
{"psubd",0xfa,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1206},
{"paddb",0xfc,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1207},
{"paddw",0xfd,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1208},
{"paddd",0xfe,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MREG,ARG_MMXMODRM,ARG_NONE,1209},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x80
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub80[]=
{ {"add",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2000},
{"or",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2001},
{"adc",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2002},
{"sbb",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2003},
{"and",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2004},
{"sub",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2005},
{"xor",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2006},
{"cmp",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,2007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x81
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub81[]=
{ {"add",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3000},
{"add",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3001},
{"or",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3002},
{"or",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3003},
{"adc",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3004},
{"adc",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3005},
{"sbb",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3006},
{"sbb",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3007},
{"and",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3008},
{"and",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3009},
{"sub",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3010},
{"sub",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3011},
{"xor",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3012},
{"xor",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3013},
{"cmp",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,3014},
{"cmp",0x7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,3016},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x82
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub82[]=
{ {"add",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4000},
{"or",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4001},
{"adc",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4002},
{"sbb",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4003},
{"and",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4004},
{"sub",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4005},
{"xor",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4006},
{"cmp",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_SIMM8,ARG_NONE,4007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x83
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub83[]=
{ {"add",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5000},
{"add",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5001},
{"or",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5002},
{"or",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5003},
{"adc",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5004},
{"adc",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5005},
{"sbb",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5006},
{"sbb",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5007},
{"and",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5008},
{"and",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5009},
{"sub",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5010},
{"sub",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5011},
{"xor",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5012},
{"xor",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5013},
{"cmp",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_SIMM8,ARG_NONE,5014},
{"cmp",0x7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_SIMM8,ARG_NONE,5015},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xc0
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subc0[]=
{ {"rol",0x0,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6000},
{"ror",0x1,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6001},
{"rcl",0x2,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6002},
{"rcr",0x3,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6003},
{"shl",0x4,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6004},
{"shr",0x5,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6005},
{"sal",0x6,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6006},
{"sar",0x7,PROC_FROM80286,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,6007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xc1
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subc1[]=
{ {"rol",0x0,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7000},
{"rol",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7001},
{"ror",0x1,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7002},
{"ror",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7003},
{"rcl",0x2,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7004},
{"rcl",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7005},
{"rcr",0x3,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7006},
{"rcr",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7007},
{"shl",0x4,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7008},
{"shl",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7009},
{"shr",0x5,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7010},
{"shr",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7011},
{"sal",0x6,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7012},
{"sal",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7013},
{"sar",0x7,PROC_FROM80286,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM8,ARG_NONE,7014},
{"sar",0x7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM8,ARG_NONE,7015},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd0
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subd0[]=
{ {"rol",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8000},
{"ror",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8001},
{"rcl",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8002},
{"rcr",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8003},
{"shl",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8004},
{"shr",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8005},
{"sal",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8006},
{"sar",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM_1,ARG_NONE,8007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd1
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subd1[]=
{ {"rol",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9000},
{"rol",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9001},
{"ror",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9002},
{"ror",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9003},
{"rcl",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9004},
{"rcl",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9005},
{"rcr",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9006},
{"rcr",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9007},
{"shl",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9008},
{"shl",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9009},
{"shr",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9010},
{"shr",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9011},
{"sal",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9012},
{"sal",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9013},
{"sar",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM_1,ARG_NONE,9014},
{"sar",0x7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM_1,ARG_NONE,9015},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd2
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subd2[]=
{ {"rol",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10000},
{"ror",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10001},
{"rcl",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10002},
{"rcr",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10003},
{"shl",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10004},
{"shr",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10005},
{"sal",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10006},
{"sar",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_REG_CL,ARG_NONE,10007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd3
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subd3[]=
{ {"rol",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11000},
{"rol",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11001},
{"ror",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11002},
{"ror",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11003},
{"rcl",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11004},
{"rcl",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11005},
{"rcr",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11006},
{"rcr",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11007},
{"shl",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11008},
{"shl",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11009},
{"shr",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11010},
{"shr",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11011},
{"sal",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11012},
{"sal",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11013},
{"sar",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_REG_CL,ARG_NONE,11014},
{"sar",0x7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_REG_CL,ARG_NONE,11015},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xf6
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subf6[]=
{ {"test",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,12000},
{"test",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_IMM8,ARG_NONE,12001},
{"not",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,12002},
{"neg",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,12003},
{"mul",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,12004},
{"imul",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,12005},
{"div",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,12006},
{"idiv",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,12007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xf7
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subf7[]=
{ {"test",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,13000},
{"test",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,13001},
{"test",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_IMM,ARG_NONE,13002},
{"test",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_IMM,ARG_NONE,13003},
{"not",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,13004},
{"not",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,13005},
{"neg",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,13006},
{"neg",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,13007},
{"mul",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,13008},
{"mul",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,13009},
{"imul",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,13010},
{"imul",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,13011},
{"div",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,13012},
{"div",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,13013},
{"idiv",0x7,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,13014},
{"idiv",0x7,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,13015},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xfe
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subfe[]=
{ {"inc",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,14000},
{"dec",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_8BIT,ARG_MODRM,ARG_NONE,ARG_NONE,14001},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xff
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subff[]=
{ {"inc",0x0,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,15000},
{"inc",0x0,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,15001},
{"dec",0x1,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,15002},
{"dec",0x1,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,15003},
{"call",0x2,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16|FLAGS_CALL,ARG_MODRM,ARG_NONE,ARG_NONE,15004},
{"call",0x2,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32|FLAGS_CALL,ARG_MODRM,ARG_NONE,ARG_NONE,15005},
{"call",0x3,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16|FLAGS_CALL,ARG_MODRM_FPTR,ARG_NONE,ARG_NONE,15006},
{"call",0x3,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32|FLAGS_CALL,ARG_MODRM_FPTR,ARG_NONE,ARG_NONE,15007},
{"jmp",0x4,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16|FLAGS_JMP,ARG_MODRM,ARG_NONE,ARG_NONE,15008},
{"jmp",0x4,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32|FLAGS_JMP,ARG_MODRM,ARG_NONE,ARG_NONE,15009},
{"jmp",0x5,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16|FLAGS_JMP,ARG_MODRM_FPTR,ARG_NONE,ARG_NONE,15010},
{"jmp",0x5,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32|FLAGS_JMP,ARG_MODRM_FPTR,ARG_NONE,ARG_NONE,15011},
{"push",0x6,PROC_FROM8086,FLAGS_MODRM|FLAGS_OMODE16,ARG_MODRM,ARG_NONE,ARG_NONE,15012},
{"push",0x6,PROC_FROM80386,FLAGS_MODRM|FLAGS_OMODE32,ARG_MODRM,ARG_NONE,ARG_NONE,15013},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0x00
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0f00[]=
{ {"sldt",0x0,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,16000},
{"str",0x1,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,16001},
{"lldt",0x2,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,16002},
{"ltr",0x3,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,16003},
{"verr",0x4,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,16004},
{"verw",0x5,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,16005},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0x01
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0f01[]=
{ {"sgdt",0x0,PROC_FROM80286,FLAGS_MODRM,ARG_MODRM_S,ARG_NONE,ARG_NONE,17000},
{"sidt",0x1,PROC_FROM80286,FLAGS_MODRM,ARG_MODRM_S,ARG_NONE,ARG_NONE,17001},
{"lgdt",0x2,PROC_FROM80286,FLAGS_MODRM,ARG_MODRM_S,ARG_NONE,ARG_NONE,17002},
{"lidt",0x3,PROC_FROM80286,FLAGS_MODRM,ARG_MODRM_S,ARG_NONE,ARG_NONE,17003},
{"smsw",0x4,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,17004},
{"lmsw",0x6,PROC_FROM80286,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,17005},
{"invlpg",0x7,PROC_FROM80486,FLAGS_MODRM|FLAGS_16BIT,ARG_MODRM,ARG_NONE,ARG_NONE,17006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0x18
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0f18[]=
{ {"prefetchnta",0x0,PROC_FROMPENTIUM2,FLAGS_MODRM,ARG_MODRM,ARG_NONE,ARG_NONE,18000},
{"prefetcht0",0x1,PROC_FROMPENTIUM2,FLAGS_MODRM,ARG_MODRM,ARG_NONE,ARG_NONE,18001},
{"prefetcht1",0x2,PROC_FROMPENTIUM2,FLAGS_MODRM,ARG_MODRM,ARG_NONE,ARG_NONE,18002},
{"prefetcht2",0x3,PROC_FROMPENTIUM2,FLAGS_MODRM,ARG_MODRM,ARG_NONE,ARG_NONE,18003},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0x71
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0f71[]=
{ {"psrlw",0x2,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,19000},
{"psraw",0x4,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,19001},
{"psllw",0x6,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,19002},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0x72
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0f72[]=
{ {"psrld",0x2,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,20000},
{"psrad",0x4,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,20001},
{"pslld",0x6,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,20002},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0x73
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0f73[]=
{ {"psrlq",0x2,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,21000},
{"psllq",0x6,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MMXMODRM,ARG_IMM8,ARG_NONE,21001},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0xae
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0fae[]=
{ {"fxsave",0x0,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MODRMM512,ARG_NONE,ARG_NONE,22000},
{"fxrstor",0x1,PROC_FROMPENTMMX,FLAGS_MODRM|FLAGS_32BIT,ARG_MODRMM512,ARG_NONE,ARG_NONE,22001},
{"ldmxcsr",0x2,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MODRM,ARG_NONE,ARG_NONE,22002},
{"stmxcsr",0x3,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_MODRM,ARG_NONE,ARG_NONE,22003},
{"sfence",0x7,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_NONEBYTE,ARG_NONE,ARG_NONE,22004},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0xba
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0fba[]=
{ {"bt",0x4,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_IMM8,ARG_NONE,23000},
{"bts",0x5,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_IMM8,ARG_NONE,23001},
{"btr",0x6,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_IMM8,ARG_NONE,23002},
{"btc",0x7,PROC_FROM80386,FLAGS_MODRM,ARG_MODRM,ARG_IMM8,ARG_NONE,23003},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0xc2
// -num is the follow up byte
asminstdata asm86sub0fc2[]=
{ {"cmpeqps",0x0,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24000},
{"cmpltps",0x1,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24001},
{"cmpleps",0x2,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24002},
{"cmpunordps",0x3,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24003},
{"cmpneqps",0x4,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24004},
{"cmpnltps",0x5,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24005},
{"cmpnleps",0x6,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24006},
{"cmpordps",0x7,PROC_FROMPENTIUM2,FLAGS_MODRM|FLAGS_32BIT,ARG_XREG,ARG_XMMMODRM,ARG_NONE,24007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0x0f/0xc7
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86sub0fc7[]=
{ {"cmpxch8b",0x1,PROC_FROMPENTIUM,FLAGS_MODRM,ARG_MODRMQ,ARG_NONE,ARG_NONE,25000},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// FPU Instructions
// subtable 0xd8/ modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subd8a[]=
{ {"fadd",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26000},
{"fmul",0x1,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26001},
{"fcom",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26002},
{"fcomp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26003},
{"fsub",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26004},
{"fsubr",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26005},
{"fdiv",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26006},
{"fdivr",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,26007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd8/ modrm = 0xc0-0xff
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subd8b[]=
{ {"fadd",0x18,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27000},
{"fmul",0x19,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27001},
{"fcom",0x1a,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27002},
{"fcomp",0x1b,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27003},
{"fsub",0x1c,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27004},
{"fsubr",0x1d,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27005},
{"fdiv",0x1e,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27006},
{"fdivr",0x1f,PROC_FROM8086,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,27007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd9/modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subd9a[]=
{ {"fld",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,28000},
{"fst",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,28001},
{"fstp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SREAL,ARG_NONE,ARG_NONE,28002},
{"fldenv",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_PTR,ARG_NONE,ARG_NONE,28003},
{"fldcw",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WORD,ARG_NONE,ARG_NONE,28004},
{"fstenv",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_PTR,ARG_NONE,ARG_NONE,28005},
{"fstcw",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WORD,ARG_NONE,ARG_NONE,28006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd9/ modrm = 0xc0-0xcf
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subd9b[]=
{ {"fld",0x18,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,29000},
{"fxch",0x19,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,29001},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xd9/ modrm = 0xd0-0xff
asminstdata asm86subd9c[]=
{ {"fnop",0xd0,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30000},
{"fchs",0xe0,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30001},
{"fabs",0xe1,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30002},
{"ftst",0xe4,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30003},
{"fxam",0xe5,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30004},
{"fld1",0xe8,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30005},
{"fldl2t",0xe9,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30006},
{"fldl2e",0xea,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30007},
{"fldpi",0xeb,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30008},
{"fldlg2",0xec,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30009},
{"fldln2",0xed,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30010},
{"fldz",0xee,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30011},
{"f2xm1",0xf0,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30012},
{"fyl2x",0xf1,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30013},
{"fptan",0xf2,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30014},
{"fpatan",0xf3,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30015},
{"fxtract",0xf4,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30016},
{"fprem1",0xf5,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,30017},
{"fdecstp",0xf6,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30018},
{"fincstp",0xf7,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30019},
{"fprem",0xf8,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30020},
{"fyl2xp1",0xf9,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30021},
{"fsqrt",0xfa,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30022},
{"fsincos",0xfb,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,30023},
{"frndint",0xfc,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30024},
{"fscale",0xfd,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,30025},
{"fsin",0xfe,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,30026},
{"fcos",0xff,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,30027},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xda/ modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subdaa[]=
{ {"fiadd",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31000},
{"fimul",0x1,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31001},
{"ficom",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31002},
{"ficomp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31003},
{"fisub",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31004},
{"fisubr",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31005},
{"fidiv",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31006},
{"fidivr",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,31007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xda/ modrm = 0xc0-0xdf
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subdab[]=
{ {"fmovb",0x18,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,32000},
{"fmove",0x19,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,32001},
{"fmovbe",0x1a,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,32002},
{"fmovu",0x1b,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,32003},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xda/ modrm = 0xe0-0xff
asminstdata asm86subdac[]=
{ {"fucompp",0xe9,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,33000},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdb/modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subdba[]=
{ {"fild",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,34000},
{"fist",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,34001},
{"fistp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_SINT,ARG_NONE,ARG_NONE,34002},
{"fld",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_EREAL,ARG_NONE,ARG_NONE,34003},
{"fstp",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_EREAL,ARG_NONE,ARG_NONE,34004},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdb/ modrm = 0xc0-0xff
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subdbb[]=
{ {"fcmovnb",0x18,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,35000},
{"fcmovne",0x19,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,35001},
{"fcmovnbe",0x1a,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,35002},
{"fcmovnu",0x1b,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,35003},
{"fucomi",0x1d,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,35004},
{"fcomi",0x1e,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,35005},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdb/ modrm = 0xe0-0xff
asminstdata asm86subdbc[]=
{ {"feni",0xe0,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,36000},
{"fdisi",0xe1,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,36001},
{"fclex",0xe2,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,36002},
{"finit",0xe3,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,36003},
{"fsetpm",0xe4,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,36004},
{"frstpm",0xe5,PROC_FROM80286,0,ARG_NONE,ARG_NONE,ARG_NONE,36005},
{"frint2",0xec,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,36006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdc/ modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subdca[]=
{ {"fadd",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37000},
{"fmul",0x1,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37001},
{"fcom",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37002},
{"fcomp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37003},
{"fsub",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37004},
{"fsubr",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37005},
{"fdiv",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37006},
{"fdivr",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,37007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdc/ modrm = 0xc0-0xff
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subdcb[]=
{ {"fadd",0x18,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38000},
{"fmul",0x19,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38001},
{"fcom2",0x1a,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38002},
{"fcomp3",0x1b,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38003},
{"fsub",0x1c,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38004},
{"fsubr",0x1d,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38005},
{"fdiv",0x1e,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38006},
{"fdivr",0x1f,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,38007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdd/modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subdda[]=
{ {"fld",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,39000},
{"fst",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,39001},
{"fstp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_DREAL,ARG_NONE,ARG_NONE,39002},
{"frstor",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_PTR,ARG_NONE,ARG_NONE,39003},
{"fsave",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_PTR,ARG_NONE,ARG_NONE,39004},
{"fstsw",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WORD,ARG_NONE,ARG_NONE,39005},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdd/ modrm = 0xc0-0xff
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subddb[]=
{ {"ffree",0x18,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,40000},
{"fxch4",0x19,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,40001},
{"fst",0x1a,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,40002},
{"fstp",0x1b,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,40003},
{"fucom",0x1c,PROC_FROM80386,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,40004},
{"fucomp",0x1d,PROC_FROM80386,0,ARG_FREG,ARG_NONE,ARG_NONE,40005},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xde/ modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subdea[]=
{ {"fiadd",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41000},
{"fimul",0x1,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41001},
{"ficom",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41002},
{"ficomp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41003},
{"fisub",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41004},
{"fisubr",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41005},
{"fidiv",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41006},
{"fidivr",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,41007},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xde/ modrm = 0xc0-0xdf
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subdeb[]=
{ {"faddp",0x18,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42000},
{"fmulp",0x19,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42001},
{"fcomp5",0x1a,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42002},
{"fsubrp",0x1c,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42003},
{"fsubp",0x1d,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42004},
{"fdivrp",0x1e,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42005},
{"fdivp",0x1f,PROC_FROM8086,0,ARG_FREG,ARG_REG_ST0,ARG_NONE,42006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xde/ modrm = 0xd8-0xdf
asminstdata asm86subdec[]=
{ {"fcompp",0xd9,PROC_FROM8086,0,ARG_NONE,ARG_NONE,ARG_NONE,43000},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdf/modrm = 0x00-0xbf
// - num is encoding of modrm bits 5,4,3 only
asminstdata asm86subdfa[]=
{ {"fild",0x0,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,44000},
{"fist",0x2,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,44001},
{"fistp",0x3,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_WINT,ARG_NONE,ARG_NONE,44002},
{"fbld",0x4,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_BCD,ARG_NONE,ARG_NONE,44003},
{"fild",0x5,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_LINT,ARG_NONE,ARG_NONE,44004},
{"fbstp",0x6,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_BCD,ARG_NONE,ARG_NONE,44005},
{"fistp",0x7,PROC_FROM8086,FLAGS_MODRM,ARG_MODRM_LINT,ARG_NONE,ARG_NONE,44006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdf/ modrm = 0xc0-0xff
// - num is mod bits 7,6 only + bits 5,4,3 (ie modrm/8)
asminstdata asm86subdfb[]=
{ {"ffreep",0x18,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,45000},
{"fxch7",0x19,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,45001},
{"fstp8",0x1a,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,45002},
{"fstp9",0x1b,PROC_FROM8086,0,ARG_FREG,ARG_NONE,ARG_NONE,45003},
{"fucomip",0x1d,PROC_FROMPENTPRO,0,ARG_REG_ST0,ARG_FREG,ARG_NONE,45004},
{"fcomip",0x1e,PROC_FROMPENTPRO,0,ARG_FREG,ARG_NONE,ARG_NONE,45005},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdf/ modrm = 0xe0-0xff
asminstdata asm86subdfc[]=
{ {"fstsw",0xe0,PROC_FROM8086,FLAGS_16BIT,ARG_REG_AX,ARG_NONE,ARG_NONE,46000},
{"fstdw",0xe1,PROC_FROM80386,0,ARG_REG_AX,ARG_NONE,ARG_NONE,46001},
{"fstsg",0xe2,PROC_FROM80386,0,ARG_REG_AX,ARG_NONE,ARG_NONE,46002},
{"frinear",0xe2,PROC_FROM80386,0,ARG_NONE,ARG_NONE,ARG_NONE,46003},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asmz80[]=
{ {"nop",0x00,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100000},
{"ld",0x01,PROC_Z80,0,ARG_REG_BC,ARG_IMM16,ARG_NONE,100001},
{"ld",0x02,PROC_Z80,0,ARG_REG_BC_IND,ARG_REG_A,ARG_NONE,100002},
{"inc",0x03,PROC_Z80,0,ARG_REG_BC,ARG_NONE,ARG_NONE,100003},
{"inc",0x04,PROC_Z80,0,ARG_REG_B,ARG_NONE,ARG_NONE,100004},
{"dec",0x05,PROC_Z80,0,ARG_REG_B,ARG_NONE,ARG_NONE,100005},
{"ld",0x06,PROC_Z80,0,ARG_REG_B,ARG_IMM8,ARG_NONE,100006},
{"rlca",0x07,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100007},
{"ex",0x08,PROC_Z80,0,ARG_REG_AF,ARG_REG_AF2,ARG_NONE,100008},
{"add",0x09,PROC_Z80,0,ARG_REG_HL,ARG_REG_BC,ARG_NONE,100009},
{"ld",0x0a,PROC_Z80,0,ARG_REG_A,ARG_REG_BC_IND,ARG_NONE,100010},
{"dec",0x0b,PROC_Z80,0,ARG_REG_BC,ARG_NONE,ARG_NONE,100011},
{"inc",0x0c,PROC_Z80,0,ARG_REG_C,ARG_NONE,ARG_NONE,100012},
{"dec",0x0d,PROC_Z80,0,ARG_REG_C,ARG_NONE,ARG_NONE,100013},
{"ld",0x0e,PROC_Z80,0,ARG_REG_C,ARG_IMM8,ARG_NONE,100014},
{"rrca",0x0f,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100015},
{"djnz",0x10,PROC_Z80,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,100016},
{"ld",0x11,PROC_Z80,0,ARG_REG_DE,ARG_IMM16,ARG_NONE,100017},
{"ld",0x12,PROC_Z80,0,ARG_REG_DE_IND,ARG_REG_A,ARG_NONE,100018},
{"inc",0x13,PROC_Z80,0,ARG_REG_DE,ARG_NONE,ARG_NONE,100019},
{"inc",0x14,PROC_Z80,0,ARG_REG_D,ARG_NONE,ARG_NONE,100020},
{"dec",0x15,PROC_Z80,0,ARG_REG_D,ARG_NONE,ARG_NONE,100021},
{"ld",0x16,PROC_Z80,0,ARG_REG_D,ARG_IMM8,ARG_NONE,100022},
{"rla",0x17,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100023},
{"jr",0x18,PROC_Z80,FLAGS_JMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,100024},
{"add",0x19,PROC_Z80,0,ARG_REG_HL,ARG_REG_DE,ARG_NONE,100025},
{"ld",0x1a,PROC_Z80,0,ARG_REG_A,ARG_REG_DE_IND,ARG_NONE,100026},
{"dec",0x1b,PROC_Z80,0,ARG_REG_DE,ARG_NONE,ARG_NONE,100027},
{"inc",0x1c,PROC_Z80,0,ARG_REG_E,ARG_NONE,ARG_NONE,100028},
{"dec",0x1d,PROC_Z80,0,ARG_REG_E,ARG_NONE,ARG_NONE,100029},
{"ld",0x1e,PROC_Z80,0,ARG_REG_E,ARG_IMM8,ARG_NONE,100030},
{"rra",0x1f,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100031},
{"jr nz",0x20,PROC_Z80,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,100032},
{"ld",0x21,PROC_Z80,0,ARG_REG_HL,ARG_IMM16,ARG_NONE,100033},
{"ld",0x22,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_HL,ARG_NONE,100034},
{"inc",0x23,PROC_Z80,0,ARG_REG_HL,ARG_NONE,ARG_NONE,100035},
{"inc",0x24,PROC_Z80,0,ARG_REG_H,ARG_NONE,ARG_NONE,100036},
{"dec",0x25,PROC_Z80,0,ARG_REG_H,ARG_NONE,ARG_NONE,100037},
{"ld",0x26,PROC_Z80,0,ARG_REG_H,ARG_IMM8,ARG_NONE,100038},
{"daa",0x27,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100039},
{"jr z",0x28,PROC_Z80,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,100040},
{"add",0x29,PROC_Z80,0,ARG_REG_HL,ARG_REG_HL,ARG_NONE,100041},
{"ld",0x2a,PROC_Z80,0,ARG_REG_HL,ARG_MEMLOC16,ARG_NONE,100042},
{"dec",0x2b,PROC_Z80,0,ARG_REG_HL,ARG_NONE,ARG_NONE,100043},
{"inc",0x2c,PROC_Z80,0,ARG_REG_L,ARG_NONE,ARG_NONE,100044},
{"dec",0x2d,PROC_Z80,0,ARG_REG_L,ARG_NONE,ARG_NONE,100045},
{"ld",0x2e,PROC_Z80,0,ARG_REG_L,ARG_IMM8,ARG_NONE,100046},
{"cpl",0x2f,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100047},
{"jr nc",0x30,PROC_Z80,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,100048},
{"ld",0x31,PROC_Z80,0,ARG_REG_SP,ARG_IMM16,ARG_NONE,100049},
{"ld",0x32,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_A,ARG_NONE,100050},
{"inc",0x33,PROC_Z80,0,ARG_REG_SP,ARG_NONE,ARG_NONE,100051},
{"inc",0x34,PROC_Z80,0,ARG_REG_HL_IND,ARG_NONE,ARG_NONE,100052},
{"dec",0x35,PROC_Z80,0,ARG_REG_HL_IND,ARG_NONE,ARG_NONE,100053},
{"ld",0x36,PROC_Z80,0,ARG_REG_HL_IND,ARG_IMM8,ARG_NONE,100054},
{"scf",0x37,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100055},
{"jr c",0x38,PROC_Z80,FLAGS_CJMP,ARG_RELIMM8,ARG_NONE,ARG_NONE,100056},
{"add",0x39,PROC_Z80,0,ARG_REG_HL,ARG_REG_SP,ARG_NONE,100057},
{"ld",0x3a,PROC_Z80,0,ARG_REG_A,ARG_MEMLOC16,ARG_NONE,100058},
{"dec",0x3b,PROC_Z80,0,ARG_REG_SP,ARG_NONE,ARG_NONE,100059},
{"inc",0x3c,PROC_Z80,0,ARG_REG_A,ARG_NONE,ARG_NONE,100060},
{"dec",0x3d,PROC_Z80,0,ARG_REG_A,ARG_NONE,ARG_NONE,100061},
{"ld",0x3e,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100062},
{"ccf",0x3f,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100063},
{"ld",0x40,PROC_Z80,0,ARG_REG_B,ARG_REG_B,ARG_NONE,100064},
{"ld",0x41,PROC_Z80,0,ARG_REG_B,ARG_REG_C,ARG_NONE,100065},
{"ld",0x42,PROC_Z80,0,ARG_REG_B,ARG_REG_D,ARG_NONE,100066},
{"ld",0x43,PROC_Z80,0,ARG_REG_B,ARG_REG_E,ARG_NONE,100067},
{"ld",0x44,PROC_Z80,0,ARG_REG_B,ARG_REG_H,ARG_NONE,100068},
{"ld",0x45,PROC_Z80,0,ARG_REG_B,ARG_REG_L,ARG_NONE,100069},
{"ld",0x46,PROC_Z80,0,ARG_REG_B,ARG_REG_HL_IND,ARG_NONE,100070},
{"ld",0x47,PROC_Z80,0,ARG_REG_B,ARG_REG_A,ARG_NONE,100071},
{"ld",0x48,PROC_Z80,0,ARG_REG_C,ARG_REG_B,ARG_NONE,100072},
{"ld",0x49,PROC_Z80,0,ARG_REG_C,ARG_REG_C,ARG_NONE,100073},
{"ld",0x4a,PROC_Z80,0,ARG_REG_C,ARG_REG_D,ARG_NONE,100074},
{"ld",0x4b,PROC_Z80,0,ARG_REG_C,ARG_REG_E,ARG_NONE,100075},
{"ld",0x4c,PROC_Z80,0,ARG_REG_C,ARG_REG_H,ARG_NONE,100076},
{"ld",0x4d,PROC_Z80,0,ARG_REG_C,ARG_REG_L,ARG_NONE,100077},
{"ld",0x4e,PROC_Z80,0,ARG_REG_C,ARG_REG_HL_IND,ARG_NONE,100078},
{"ld",0x4f,PROC_Z80,0,ARG_REG_C,ARG_REG_A,ARG_NONE,100079},
{"ld",0x50,PROC_Z80,0,ARG_REG_D,ARG_REG_B,ARG_NONE,100080},
{"ld",0x51,PROC_Z80,0,ARG_REG_D,ARG_REG_C,ARG_NONE,100081},
{"ld",0x52,PROC_Z80,0,ARG_REG_D,ARG_REG_D,ARG_NONE,100082},
{"ld",0x53,PROC_Z80,0,ARG_REG_D,ARG_REG_E,ARG_NONE,100083},
{"ld",0x54,PROC_Z80,0,ARG_REG_D,ARG_REG_H,ARG_NONE,100084},
{"ld",0x55,PROC_Z80,0,ARG_REG_D,ARG_REG_L,ARG_NONE,100085},
{"ld",0x56,PROC_Z80,0,ARG_REG_D,ARG_REG_HL_IND,ARG_NONE,100086},
{"ld",0x57,PROC_Z80,0,ARG_REG_D,ARG_REG_A,ARG_NONE,100087},
{"ld",0x58,PROC_Z80,0,ARG_REG_E,ARG_REG_B,ARG_NONE,100088},
{"ld",0x59,PROC_Z80,0,ARG_REG_E,ARG_REG_C,ARG_NONE,100089},
{"ld",0x5a,PROC_Z80,0,ARG_REG_E,ARG_REG_D,ARG_NONE,100090},
{"ld",0x5b,PROC_Z80,0,ARG_REG_E,ARG_REG_E,ARG_NONE,100091},
{"ld",0x5c,PROC_Z80,0,ARG_REG_E,ARG_REG_H,ARG_NONE,100092},
{"ld",0x5d,PROC_Z80,0,ARG_REG_E,ARG_REG_L,ARG_NONE,100093},
{"ld",0x5e,PROC_Z80,0,ARG_REG_E,ARG_REG_HL_IND,ARG_NONE,100094},
{"ld",0x5f,PROC_Z80,0,ARG_REG_E,ARG_REG_A,ARG_NONE,100095},
{"ld",0x60,PROC_Z80,0,ARG_REG_H,ARG_REG_B,ARG_NONE,100096},
{"ld",0x61,PROC_Z80,0,ARG_REG_H,ARG_REG_C,ARG_NONE,100097},
{"ld",0x62,PROC_Z80,0,ARG_REG_H,ARG_REG_D,ARG_NONE,100098},
{"ld",0x63,PROC_Z80,0,ARG_REG_H,ARG_REG_E,ARG_NONE,100099},
{"ld",0x64,PROC_Z80,0,ARG_REG_H,ARG_REG_H,ARG_NONE,100100},
{"ld",0x65,PROC_Z80,0,ARG_REG_H,ARG_REG_L,ARG_NONE,100101},
{"ld",0x66,PROC_Z80,0,ARG_REG_H,ARG_REG_HL_IND,ARG_NONE,100102},
{"ld",0x67,PROC_Z80,0,ARG_REG_H,ARG_REG_A,ARG_NONE,100103},
{"ld",0x68,PROC_Z80,0,ARG_REG_L,ARG_REG_B,ARG_NONE,100104},
{"ld",0x69,PROC_Z80,0,ARG_REG_L,ARG_REG_C,ARG_NONE,100105},
{"ld",0x6a,PROC_Z80,0,ARG_REG_L,ARG_REG_D,ARG_NONE,100106},
{"ld",0x6b,PROC_Z80,0,ARG_REG_L,ARG_REG_E,ARG_NONE,100107},
{"ld",0x6c,PROC_Z80,0,ARG_REG_L,ARG_REG_H,ARG_NONE,100108},
{"ld",0x6d,PROC_Z80,0,ARG_REG_L,ARG_REG_L,ARG_NONE,100109},
{"ld",0x6e,PROC_Z80,0,ARG_REG_L,ARG_REG_HL_IND,ARG_NONE,100110},
{"ld",0x6f,PROC_Z80,0,ARG_REG_L,ARG_REG_A,ARG_NONE,100111},
{"ld",0x70,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_B,ARG_NONE,100112},
{"ld",0x71,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_C,ARG_NONE,100113},
{"ld",0x72,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_D,ARG_NONE,100114},
{"ld",0x73,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_E,ARG_NONE,100115},
{"ld",0x74,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_H,ARG_NONE,100116},
{"ld",0x75,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_L,ARG_NONE,100117},
{"halt",0x76,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100118},
{"ld",0x77,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_A,ARG_NONE,100119},
{"ld",0x78,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100120},
{"ld",0x79,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100121},
{"ld",0x7a,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100122},
{"ld",0x7b,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100123},
{"ld",0x7c,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100124},
{"ld",0x7d,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100125},
{"ld",0x7e,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100126},
{"ld",0x7f,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100127},
{"add",0x80,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100128},
{"add",0x81,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100129},
{"add",0x82,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100130},
{"add",0x83,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100131},
{"add",0x84,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100132},
{"add",0x85,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100133},
{"add",0x86,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100134},
{"add",0x87,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100135},
{"adc",0x88,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100136},
{"adc",0x89,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100137},
{"adc",0x8a,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100138},
{"adc",0x8b,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100139},
{"adc",0x8c,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100140},
{"adc",0x8d,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100141},
{"adc",0x8e,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100142},
{"adc",0x8f,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100143},
{"sub",0x90,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100144},
{"sub",0x91,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100145},
{"sub",0x92,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100146},
{"sub",0x93,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100147},
{"sub",0x94,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100148},
{"sub",0x95,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100149},
{"sub",0x96,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100150},
{"sub",0x97,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100151},
{"sbc",0x98,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100152},
{"sbc",0x99,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100153},
{"sbc",0x9a,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100154},
{"sbc",0x9b,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100155},
{"sbc",0x9c,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100156},
{"sbc",0x9d,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100157},
{"sbc",0x9e,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100158},
{"sbc",0x9f,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100159},
{"and",0xa0,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100160},
{"and",0xa1,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100161},
{"and",0xa2,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100162},
{"and",0xa3,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100163},
{"and",0xa4,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100164},
{"and",0xa5,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100165},
{"and",0xa6,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100166},
{"and",0xa7,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100167},
{"xor",0xa8,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100168},
{"xor",0xa9,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100169},
{"xor",0xaa,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100170},
{"xor",0xab,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100171},
{"xor",0xac,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100172},
{"xor",0xad,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100173},
{"xor",0xae,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100174},
{"xor",0xaf,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100175},
{"or",0xb0,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100176},
{"or",0xb1,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100177},
{"or",0xb2,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100178},
{"or",0xb3,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100179},
{"or",0xb4,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100180},
{"or",0xb5,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100181},
{"or",0xb6,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100182},
{"or",0xb7,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100183},
{"cp",0xb8,PROC_Z80,0,ARG_REG_A,ARG_REG_B,ARG_NONE,100184},
{"cp",0xb9,PROC_Z80,0,ARG_REG_A,ARG_REG_C,ARG_NONE,100185},
{"cp",0xba,PROC_Z80,0,ARG_REG_A,ARG_REG_D,ARG_NONE,100186},
{"cp",0xbb,PROC_Z80,0,ARG_REG_A,ARG_REG_E,ARG_NONE,100187},
{"cp",0xbc,PROC_Z80,0,ARG_REG_A,ARG_REG_H,ARG_NONE,100188},
{"cp",0xbd,PROC_Z80,0,ARG_REG_A,ARG_REG_L,ARG_NONE,100189},
{"cp",0xbe,PROC_Z80,0,ARG_REG_A,ARG_REG_HL_IND,ARG_NONE,100190},
{"cp",0xbf,PROC_Z80,0,ARG_REG_A,ARG_REG_A,ARG_NONE,100191},
{"ret nz",0xc0,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100192},
{"pop",0xc1,PROC_Z80,0,ARG_REG_BC,ARG_NONE,ARG_NONE,100193},
{"jp nz",0xc2,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100194},
{"jp",0xc3,PROC_Z80,FLAGS_JMP,ARG_IMM16,ARG_NONE,ARG_NONE,100195},
{"call nz",0xc4,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100196},
{"push",0xc5,PROC_Z80,0,ARG_REG_BC,ARG_NONE,ARG_NONE,100197},
{"add",0xc6,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100198},
{"rst 00h",0xc7,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100199},
{"ret z",0xc8,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100200},
{"ret",0xc9,PROC_Z80,FLAGS_RET,ARG_NONE,ARG_NONE,ARG_NONE,100201},
{"jp z",0xca,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100202},
{NULL,0xcb,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100203}, // subtable 0xcb
{"call z",0xcc,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100204},
{"call",0xcd,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100205},
{"adc",0xce,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100206},
{"rst 08h",0xcf,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100207},
{"ret nc",0xd0,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100208},
{"pop",0xd1,PROC_Z80,0,ARG_REG_DE,ARG_NONE,ARG_NONE,100209},
{"jp nc",0xd2,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100210},
{"out",0xd3,PROC_Z80,0,ARG_IMM8_IND,ARG_REG_A,ARG_NONE,100211},
{"call nc",0xd4,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100212},
{"push",0xd5,PROC_Z80,0,ARG_REG_DE,ARG_NONE,ARG_NONE,100213},
{"sub",0xd6,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100214},
{"rst 10h",0xd7,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100215},
{"ret c",0xd8,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100216},
{"exx",0xd9,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100217},
{"jp c",0xda,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100218},
{"in",0xdb,PROC_Z80,0,ARG_REG_A,ARG_IMM8_IND,ARG_NONE,100219},
{"call c",0xdc,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100220},
{NULL,0xdd,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100221}, // subtable 0xdd
{"sbc",0xde,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100222},
{"rst 18h",0xdf,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100223},
{"ret po",0xe0,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100224},
{"pop",0xe1,PROC_Z80,0,ARG_REG_HL,ARG_NONE,ARG_NONE,100225},
{"jp po",0xe2,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100226},
{"ex",0xe3,PROC_Z80,0,ARG_REG_SP_IND,ARG_REG_HL,ARG_NONE,100227},
{"call po",0xe4,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100228},
{"push",0xe5,PROC_Z80,0,ARG_REG_HL,ARG_NONE,ARG_NONE,100229},
{"and",0xe6,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100230},
{"rst 20h",0xe7,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100231},
{"ret pe",0xe8,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100232},
{"jp",0xe9,PROC_Z80,FLAGS_IJMP,ARG_REG_HL_IND,ARG_NONE,ARG_NONE,100233},
{"jp pe",0xea,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100234},
{"ex",0xeb,PROC_Z80,0,ARG_REG_DE,ARG_REG_HL,ARG_NONE,100235},
{"call pe",0xec,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100236},
{NULL,0xed,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100237}, // subtable 0xed
{"xor",0xee,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100238},
{"rst 28h",0xef,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100239},
{"ret p",0xf0,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100240},
{"pop",0xf1,PROC_Z80,0,ARG_REG_AF,ARG_NONE,ARG_NONE,100241},
{"jp p",0xf2,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100242},
{"di",0xf3,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100243},
{"call p",0xf4,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100244},
{"push",0xf5,PROC_Z80,0,ARG_REG_AF,ARG_NONE,ARG_NONE,100245},
{"or",0xf6,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100246},
{"rst 30h",0xf7,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100247},
{"ret m",0xf8,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100248},
{"ld",0xf9,PROC_Z80,0,ARG_REG_SP,ARG_REG_HL,ARG_NONE,100249},
{"jp m",0xfa,PROC_Z80,FLAGS_CJMP,ARG_IMM16,ARG_NONE,ARG_NONE,100250},
{"ei",0xfb,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100251},
{"call m",0xfc,PROC_Z80,FLAGS_CALL,ARG_IMM16,ARG_NONE,ARG_NONE,100252},
{NULL,0xfd,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100253}, // subtable 0xfd
{"cp",0xfe,PROC_Z80,0,ARG_REG_A,ARG_IMM8,ARG_NONE,100254},
{"rst 38h",0xff,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,100255},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// z80 subtable 0xcb
// - num = second byte/8
// - reg = second byte&7
asminstdata asmz80subcba[]=
{ {"rlc",0x0,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101000},
{"rrc",0x1,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101001},
{"rl",0x2,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101002},
{"rr",0x3,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101003},
{"sla",0x4,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101004},
{"sra",0x5,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101005},
{"srl",0x7,PROC_Z80,0,ARG_REG,ARG_NONE,ARG_NONE,101006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// z80 subtable 0xcb part2
// - num = second byte bits 7,6
// - bit = second byte bits 5,4,3
// - reg = second byte bits 2,1,0
asminstdata asmz80subcbb[]=
{ {"bit",0x1,PROC_Z80,0,ARG_BIT,ARG_REG,ARG_NONE,102000},
{"res",0x2,PROC_Z80,0,ARG_BIT,ARG_REG,ARG_NONE,102001},
{"set",0x3,PROC_Z80,0,ARG_BIT,ARG_REG,ARG_NONE,102002},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// subtable 0xdd
asminstdata asmz80subdd[]=
{ {"add",0x09,PROC_Z80,0,ARG_REG_IX,ARG_REG_BC,ARG_NONE,103000},
{"add",0x19,PROC_Z80,0,ARG_REG_IX,ARG_REG_DE,ARG_NONE,103001},
{"ld",0x21,PROC_Z80,0,ARG_REG_IX,ARG_IMM16,ARG_NONE,103002},
{"ld",0x22,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_IX,ARG_NONE,103003},
{"inc",0x23,PROC_Z80,0,ARG_REG_IX,ARG_NONE,ARG_NONE,103004},
{"add",0x29,PROC_Z80,0,ARG_REG_IX,ARG_REG_IX,ARG_NONE,103005},
{"ld",0x2a,PROC_Z80,0,ARG_REG_IX,ARG_MEMLOC16,ARG_NONE,103006},
{"dec",0x2b,PROC_Z80,0,ARG_REG_IX,ARG_NONE,ARG_NONE,103007},
{"inc",0x34,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,103008},
{"dec",0x35,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,103009},
{"ld",0x36,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_IMM8,ARG_NONE,103010},
{"add",0x39,PROC_Z80,0,ARG_REG_IX,ARG_REG_SP,ARG_NONE,103011},
{"ld",0x46,PROC_Z80,FLAGS_INDEXREG,ARG_REG_B,ARG_REG_IX_IND,ARG_NONE,103012},
{"ld",0x4e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_C,ARG_REG_IX_IND,ARG_NONE,103013},
{"ld",0x56,PROC_Z80,FLAGS_INDEXREG,ARG_REG_D,ARG_REG_IX_IND,ARG_NONE,103014},
{"ld",0x5e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_E,ARG_REG_IX_IND,ARG_NONE,103015},
{"ld",0x66,PROC_Z80,FLAGS_INDEXREG,ARG_REG_H,ARG_REG_IX_IND,ARG_NONE,103016},
{"ld",0x6e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_L,ARG_REG_IX_IND,ARG_NONE,103017},
{"ld",0x70,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_B,ARG_NONE,103018},
{"ld",0x71,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_C,ARG_NONE,103019},
{"ld",0x72,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_D,ARG_NONE,103020},
{"ld",0x73,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_E,ARG_NONE,103021},
{"ld",0x74,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_H,ARG_NONE,103022},
{"ld",0x75,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_L,ARG_NONE,103023},
{"ld",0x77,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_REG_A,ARG_NONE,103024},
{"ld",0x7e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103025},
{"add",0x86,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103026},
{"adc",0x8e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103027},
{"sub",0x96,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103028},
{"sbc",0x9e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103029},
{"and",0xa6,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103030},
{"xor",0xae,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103031},
{"or",0xb6,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103032},
{"cp",0xbe,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IX_IND,ARG_NONE,103033},
{NULL,0xcb,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,103034}, // subtable 0xdd/0xcb
{"pop",0xe1,PROC_Z80,0,ARG_REG_IX,ARG_NONE,ARG_NONE,103035},
{"ex",0xe3,PROC_Z80,0,ARG_REG_SP_IND,ARG_REG_IX,ARG_NONE,103036},
{"push",0xe5,PROC_Z80,0,ARG_REG_IX,ARG_NONE,ARG_NONE,103037},
{"jp",0xe9,PROC_Z80,FLAGS_IJMP,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,103038},
{"ld",0xf9,PROC_Z80,0,ARG_REG_SP,ARG_REG_IX,ARG_NONE,103039},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// z80 subtable 0xdd/0xcb
// - num = fourth byte
asminstdata asmz80subddcba[]=
{ {"rlc",0x06,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104000},
{"rrc",0x0e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104001},
{"rl",0x16,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104002},
{"rr",0x1e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104003},
{"sla",0x26,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104004},
{"sra",0x2e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104005},
{"srl",0x3e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IX_IND,ARG_NONE,ARG_NONE,104006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// z80 subtable 0xdd/0xcb part2
// - num = second byte bits 7,6,2,1,0
// - bit = second byte bits 5,4,3
asminstdata asmz80subddcbb[]=
{ {"bit",0x46,PROC_Z80,FLAGS_INDEXREG,ARG_BIT,ARG_REG_IX_IND,ARG_NONE,105000},
{"res",0x86,PROC_Z80,FLAGS_INDEXREG,ARG_BIT,ARG_REG_IX_IND,ARG_NONE,105001},
{"set",0xc6,PROC_Z80,FLAGS_INDEXREG,ARG_BIT,ARG_REG_IX_IND,ARG_NONE,105002},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asmz80subed[]=
{ {"in",0x40,PROC_Z80,0,ARG_REG_B,ARG_REG_C_IND,ARG_NONE,106000},
{"out",0x41,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_B,ARG_NONE,106001},
{"sbc",0x42,PROC_Z80,0,ARG_REG_HL,ARG_REG_BC,ARG_NONE,106002},
{"ld",0x43,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_BC,ARG_NONE,106003},
{"neg",0x44,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106004},
{"retn",0x45,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106005},
{"im 0",0x46,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106006},
{"ld",0x47,PROC_Z80,0,ARG_REG_I,ARG_REG_A,ARG_NONE,106007},
{"in",0x48,PROC_Z80,0,ARG_REG_C,ARG_REG_C_IND,ARG_NONE,106008},
{"out",0x49,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_C,ARG_NONE,106009},
{"adc",0x4a,PROC_Z80,0,ARG_REG_HL,ARG_REG_BC,ARG_NONE,106010},
{"ld",0x4b,PROC_Z80,0,ARG_REG_BC,ARG_MEMLOC16,ARG_NONE,106011},
{"reti",0x4d,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106012},
{"ld",0x4f,PROC_Z80,0,ARG_REG_R,ARG_REG_A,ARG_NONE,106013},
{"in",0x50,PROC_Z80,0,ARG_REG_D,ARG_REG_C_IND,ARG_NONE,106014},
{"out",0x51,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_D,ARG_NONE,106015},
{"sbc",0x52,PROC_Z80,0,ARG_REG_HL,ARG_REG_DE,ARG_NONE,106016},
{"ld",0x53,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_DE,ARG_NONE,106017},
{"im 1",0x56,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106018},
{"ld",0x57,PROC_Z80,0,ARG_REG_A,ARG_REG_I,ARG_NONE,106019},
{"in",0x58,PROC_Z80,0,ARG_REG_E,ARG_REG_C_IND,ARG_NONE,106020},
{"out",0x59,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_E,ARG_NONE,106021},
{"adc",0x5a,PROC_Z80,0,ARG_REG_HL,ARG_REG_DE,ARG_NONE,106022},
{"ld",0x5b,PROC_Z80,0,ARG_REG_DE,ARG_MEMLOC16,ARG_NONE,106023},
{"im 2",0x5e,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106024},
{"ld",0x5f,PROC_Z80,0,ARG_REG_A,ARG_REG_R,ARG_NONE,106025},
{"in",0x60,PROC_Z80,0,ARG_REG_H,ARG_REG_C_IND,ARG_NONE,106026},
{"out",0x61,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_H,ARG_NONE,106027},
{"sbc",0x62,PROC_Z80,0,ARG_REG_HL,ARG_REG_HL,ARG_NONE,106028},
{"ld",0x63,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_HL,ARG_NONE,106029},
{"rrd",0x67,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106030},
{"in",0x68,PROC_Z80,0,ARG_REG_L,ARG_REG_C_IND,ARG_NONE,106031},
{"out",0x69,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_L,ARG_NONE,106032},
{"adc",0x6a,PROC_Z80,0,ARG_REG_HL,ARG_REG_HL,ARG_NONE,106033},
{"ld",0x6b,PROC_Z80,0,ARG_REG_HL,ARG_MEMLOC16,ARG_NONE,106034},
{"rld",0x6f,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106035},
{"in",0x70,PROC_Z80,0,ARG_REG_HL_IND,ARG_REG_C_IND,ARG_NONE,106036},
{"out",0x71,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_HL_IND,ARG_NONE,106037},
{"sbc",0x72,PROC_Z80,0,ARG_REG_HL,ARG_REG_SP,ARG_NONE,106038},
{"ld",0x73,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_SP,ARG_NONE,106039},
{"in",0x78,PROC_Z80,0,ARG_REG_A,ARG_REG_C_IND,ARG_NONE,106040},
{"out",0x79,PROC_Z80,0,ARG_REG_C_IND,ARG_REG_A,ARG_NONE,106041},
{"adc",0x7a,PROC_Z80,0,ARG_REG_HL,ARG_REG_SP,ARG_NONE,106042},
{"ld",0x7b,PROC_Z80,0,ARG_REG_SP,ARG_MEMLOC16,ARG_NONE,106043},
{"ldi",0xa0,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106044},
{"cpi",0xa1,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106045},
{"ini",0xa2,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106046},
{"outi",0xa3,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106047},
{"ldd",0xa8,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106048},
{"cpd",0xa9,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106049},
{"ind",0xaa,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106050},
{"outd",0xab,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106051},
{"ldir",0xb0,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106052},
{"cpir",0xb1,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106053},
{"inir",0xb2,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106054},
{"outir",0xb3,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106055},
{"lddr",0xb8,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106056},
{"cpdr",0xb9,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106057},
{"indr",0xba,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106058},
{"otdr",0xbb,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,106059},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asmz80subfd[]=
{ {"add",0x09,PROC_Z80,0,ARG_REG_IY,ARG_REG_BC,ARG_NONE,107000},
{"add",0x19,PROC_Z80,0,ARG_REG_IY,ARG_REG_DE,ARG_NONE,107001},
{"ld",0x21,PROC_Z80,0,ARG_REG_IY,ARG_IMM16,ARG_NONE,107002},
{"ld",0x22,PROC_Z80,0,ARG_MEMLOC16,ARG_REG_IY,ARG_NONE,107003},
{"inc",0x23,PROC_Z80,0,ARG_REG_IY,ARG_NONE,ARG_NONE,107004},
{"add",0x29,PROC_Z80,0,ARG_REG_IY,ARG_REG_IX,ARG_NONE,107005},
{"ld",0x2a,PROC_Z80,0,ARG_REG_IY,ARG_MEMLOC16,ARG_NONE,107006},
{"dec",0x2b,PROC_Z80,0,ARG_REG_IY,ARG_NONE,ARG_NONE,107007},
{"inc",0x34,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,107008},
{"dec",0x35,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,107009},
{"ld",0x36,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_IMM8,ARG_NONE,107010},
{"add",0x39,PROC_Z80,0,ARG_REG_IY,ARG_REG_SP,ARG_NONE,107011},
{"ld",0x46,PROC_Z80,FLAGS_INDEXREG,ARG_REG_B,ARG_REG_IY_IND,ARG_NONE,107012},
{"ld",0x4e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_C,ARG_REG_IY_IND,ARG_NONE,107013},
{"ld",0x56,PROC_Z80,FLAGS_INDEXREG,ARG_REG_D,ARG_REG_IY_IND,ARG_NONE,107014},
{"ld",0x5e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_E,ARG_REG_IY_IND,ARG_NONE,107015},
{"ld",0x66,PROC_Z80,FLAGS_INDEXREG,ARG_REG_H,ARG_REG_IY_IND,ARG_NONE,107016},
{"ld",0x6e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_L,ARG_REG_IY_IND,ARG_NONE,107017},
{"ld",0x70,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_B,ARG_NONE,107018},
{"ld",0x71,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_C,ARG_NONE,107019},
{"ld",0x72,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_D,ARG_NONE,107020},
{"ld",0x73,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_E,ARG_NONE,107021},
{"ld",0x74,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_H,ARG_NONE,107022},
{"ld",0x75,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_L,ARG_NONE,107023},
{"ld",0x77,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_REG_A,ARG_NONE,107024},
{"ld",0x7e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107025},
{"add",0x86,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107026},
{"adc",0x8e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107027},
{"sub",0x96,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107028},
{"sbc",0x9e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107029},
{"and",0xa6,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107030},
{"xor",0xae,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107031},
{"or",0xb6,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107032},
{"cp",0xbe,PROC_Z80,FLAGS_INDEXREG,ARG_REG_A,ARG_REG_IY_IND,ARG_NONE,107033},
{NULL,0xcb,PROC_Z80,0,ARG_NONE,ARG_NONE,ARG_NONE,107034}, // subtable 0xfd/0xcb
{"pop",0xe1,PROC_Z80,0,ARG_REG_IY,ARG_NONE,ARG_NONE,107035},
{"ex",0xe3,PROC_Z80,0,ARG_REG_SP_IND,ARG_REG_IY,ARG_NONE,107036},
{"push",0xe5,PROC_Z80,0,ARG_REG_IY,ARG_NONE,ARG_NONE,107037},
{"jp",0xe9,PROC_Z80,FLAGS_IJMP,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,107038},
{"ld",0xf9,PROC_Z80,0,ARG_REG_SP,ARG_REG_IY,ARG_NONE,107039},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// z80 subtable 0xfd/0xcb
// - num = fourth byte
asminstdata asmz80subfdcba[]=
{ {"rlc",0x06,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108000},
{"rrc",0x0e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108001},
{"rl",0x16,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108002},
{"rr",0x1e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108003},
{"sla",0x26,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108004},
{"sra",0x2e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108005},
{"srl",0x3e,PROC_Z80,FLAGS_INDEXREG,ARG_REG_IY_IND,ARG_NONE,ARG_NONE,108006},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
// z80 subtable 0xfd/0xcb part2
// - num = second byte bits 7,6,2,1,0
// - bit = second byte bits 5,4,3
asminstdata asmz80subfdcbb[]=
{ {"bit",0x46,PROC_Z80,FLAGS_INDEXREG,ARG_BIT,ARG_REG_IY_IND,ARG_NONE,109000},
{"res",0x86,PROC_Z80,FLAGS_INDEXREG,ARG_BIT,ARG_REG_IY_IND,ARG_NONE,109001},
{"set",0xc6,PROC_Z80,FLAGS_INDEXREG,ARG_BIT,ARG_REG_IY_IND,ARG_NONE,109002},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asmdword[]=
{ {"dd",0x00,PROC_ALL,0,ARG_IMM32,ARG_NONE,ARG_NONE,200000},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asmword[]=
{ {"dw",0x00,PROC_ALL,0,ARG_IMM16,ARG_NONE,ARG_NONE,201000},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asmstr[]=
{ {"db",0x00,PROC_ALL,0,ARG_STRING,ARG_NONE,ARG_NONE,202000},
{"db",0x00,PROC_ALL,0,ARG_PSTRING,ARG_NONE,ARG_NONE,202001},
{"db",0x00,PROC_ALL,0,ARG_DOSSTRING,ARG_NONE,ARG_NONE,202002},
{"dw",0x00,PROC_ALL,0,ARG_CUNICODESTRING,ARG_NONE,ARG_NONE,202003},
{"dw",0x00,PROC_ALL,0,ARG_PUNICODESTRING,ARG_NONE,ARG_NONE,202004},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asminstdata asm_fp[]=
{ {"dword",0x00,PROC_ALL,0,ARG_IMM_SINGLE,ARG_NONE,ARG_NONE,203000},
{"qword",0x00,PROC_ALL,0,ARG_IMM_DOUBLE,ARG_NONE,ARG_NONE,203001},
{"tbyte",0x00,PROC_ALL,0,ARG_IMM_LONGDOUBLE,ARG_NONE,ARG_NONE,203002},
{NULL,0x00,0,0,ARG_NONE,ARG_NONE,ARG_NONE,0} //end marker - processor=0 & opcode=0
};
asmtable tables86[]=
{ {asm86,TABLE_MAIN,0,0,0,0xff,0,0xff,0},
{asm86sub0f,TABLE_EXT,0x0f,0,0,0xff,0,0xff,1},
{asm86sub80,TABLE_EXT,0x80,0,8,0x07,0,0xff,0},
{asm86sub81,TABLE_EXT,0x81,0,8,0x07,0,0xff,0},
{asm86sub82,TABLE_EXT,0x82,0,8,0x07,0,0xff,0},
{asm86sub83,TABLE_EXT,0x83,0,8,0x07,0,0xff,0},
{asm86subc0,TABLE_EXT,0xc0,0,8,0x07,0,0xff,0},
{asm86subc1,TABLE_EXT,0xc1,0,8,0x07,0,0xff,0},
{asm86subd0,TABLE_EXT,0xd0,0,8,0x07,0,0xff,0},
{asm86subd1,TABLE_EXT,0xd1,0,8,0x07,0,0xff,0},
{asm86subd2,TABLE_EXT,0xd2,0,8,0x07,0,0xff,0},
{asm86subd3,TABLE_EXT,0xd3,0,8,0x07,0,0xff,0},
{asm86subf6,TABLE_EXT,0xf6,0,8,0x07,0,0xff,0},
{asm86subf7,TABLE_EXT,0xf7,0,8,0x07,0,0xff,0},
{asm86subfe,TABLE_EXT,0xfe,0,8,0x07,0,0xff,0},
{asm86subff,TABLE_EXT,0xff,0,8,0x07,0,0xff,0},
{asm86sub0f00,TABLE_EXT2,0x0f,0x00,8,0x07,0,0xff,1},
{asm86sub0f01,TABLE_EXT2,0x0f,0x01,8,0x07,0,0xff,1},
{asm86sub0f18,TABLE_EXT2,0x0f,0x18,8,0x07,0,0xff,1},
{asm86sub0f71,TABLE_EXT2,0x0f,0x71,8,0x07,0,0xff,1},
{asm86sub0f72,TABLE_EXT2,0x0f,0x72,8,0x07,0,0xff,1},
{asm86sub0f73,TABLE_EXT2,0x0f,0x73,8,0x07,0,0xff,1},
{asm86sub0fae,TABLE_EXT2,0x0f,0xae,8,0x07,0,0xff,1},
{asm86sub0fba,TABLE_EXT2,0x0f,0xba,8,0x07,0,0xff,1},
{asm86sub0fc2,TABLE_EXT2,0x0f,0xc2,0,0x00,0,0xff,1},
{asm86sub0fc7,TABLE_EXT2,0x0f,0xc7,8,0x07,0,0xff,1},
{asm86subd8a,TABLE_EXT,0xd8,0,8,0x07,0,0xbf,0},
{asm86subd8b,TABLE_EXT,0xd8,0,8,0x1f,0xc0,0xff,0},
{asm86subd9a,TABLE_EXT,0xd9,0,8,0x07,0,0xbf,0},
{asm86subd9b,TABLE_EXT,0xd9,0,8,0x1f,0xc0,0xff,0},
{asm86subd9c,TABLE_EXT,0xd9,0,1,0xff,0xc0,0xff,1},
{asm86subdaa,TABLE_EXT,0xda,0,8,0x07,0,0xbf,0},
{asm86subdab,TABLE_EXT,0xda,0,8,0x1f,0xc0,0xff,0},
{asm86subdac,TABLE_EXT,0xda,0,1,0xff,0xc0,0xff,1},
{asm86subdba,TABLE_EXT,0xdb,0,8,0x07,0,0xbf,0},
{asm86subdbb,TABLE_EXT,0xdb,0,8,0x1f,0xc0,0xff,0},
{asm86subdbc,TABLE_EXT,0xdb,0,1,0xff,0xc0,0xff,1},
{asm86subdca,TABLE_EXT,0xdc,0,8,0x07,0,0xbf,0},
{asm86subdcb,TABLE_EXT,0xdc,0,8,0x1f,0xc0,0xff,0},
{asm86subdda,TABLE_EXT,0xdd,0,8,0x07,0,0xbf,0},
{asm86subddb,TABLE_EXT,0xdd,0,8,0x1f,0xc0,0xff,0},
{asm86subdea,TABLE_EXT,0xde,0,8,0x07,0,0xbf,0},
{asm86subdeb,TABLE_EXT,0xde,0,8,0x1f,0xc0,0xff,0},
{asm86subdec,TABLE_EXT,0xde,0,1,0xff,0xc0,0xff,1},
{asm86subdfa,TABLE_EXT,0xdf,0,8,0x07,0,0xbf,0},
{asm86subdfb,TABLE_EXT,0xdf,0,8,0x1f,0xc0,0xff,0},
{asm86subdfc,TABLE_EXT,0xdf,0,1,0xff,0xc0,0xff,1},
{NULL,0,0,0,0,0,0,0,0}
};
asmtable tablesz80[]=
{ {asmz80,TABLE_MAIN,0,0,0,0xff,0,0xff,0},
{asmz80subcba,TABLE_EXT,0xcb,0,8,0x1f,0,0x39,0},
{asmz80subcbb,TABLE_EXT,0xcb,0,64,0x03,0x40,0xff,0},
{asmz80subdd,TABLE_EXT,0xdd,0,0,0xff,0,0xff,0},
{asmz80subddcba,TABLE_EXT2,0xdd,0xcb,0,0xff,0,0xff,0},
{asmz80subddcbb,TABLE_EXT2,0xdd,0xcb,0,0xc7,0,0xff,0},
{asmz80subed,TABLE_EXT,0xed,0,0,0xff,0,0xff,0},
{asmz80subfd,TABLE_EXT,0xfd,0,0,0xff,0,0xff,0},
{asmz80subfdcba,TABLE_EXT2,0xfd,0xcb,0,0xff,0,0xff,0},
{asmz80subfdcbb,TABLE_EXT2,0xfd,0xcb,0,0xc7,0,0xff,0},
{NULL,0,0,0,0,0,0,0,0}
};
asminstdata *reconstruct[]=
{ asm86,asm86sub0f,asm86sub80,asm86sub81,asm86sub82,asm86sub83,asm86subc0,asm86subc1,asm86subd0,
asm86subd1,asm86subd2,asm86subd3,asm86subf6,asm86subf7,asm86subfe,asm86subff,asm86sub0f00,
asm86sub0f01,asm86sub0f18,asm86sub0f71,asm86sub0f72,asm86sub0f73,asm86sub0fae,asm86sub0fba,
asm86sub0fc2,asm86sub0fc7,asm86subd8a,asm86subd8b,asm86subd9a,asm86subd9b,asm86subd9c,
asm86subdaa,asm86subdab,asm86subdac,asm86subdba,asm86subdbb,asm86subdbc,asm86subdca,asm86subdcb,
asm86subdda,asm86subddb,asm86subdea,asm86subdeb,asm86subdec,asm86subdfa,asm86subdfb,asm86subdfc,
asmz80,asmz80subcba,asmz80subcbb,asmz80subdd,asmz80subddcba,asmz80subddcbb,asmz80subed,asmz80subfd,
asmz80subfdcba,asmz80subfdcbb,asmdword,asmword,asmstr,asm_fp,NULL
};
Detected encoding: UTF-8 | 0
|