summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/nec/necdasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/nec/necdasm.c')
-rw-r--r--src/emu/cpu/nec/necdasm.c1405
1 files changed, 702 insertions, 703 deletions
diff --git a/src/emu/cpu/nec/necdasm.c b/src/emu/cpu/nec/necdasm.c
index 21b964a2984..b0a69a0e185 100644
--- a/src/emu/cpu/nec/necdasm.c
+++ b/src/emu/cpu/nec/necdasm.c
@@ -9,7 +9,7 @@
struct nec_config
{
- const UINT8* v25v35_decryptiontable; // internal decryption table
+ const UINT8* v25v35_decryptiontable; // internal decryption table
};
/* default configuration */
@@ -22,27 +22,27 @@ static const nec_config *Iconfig;
enum
{
- PARAM_REG8 = 1, /* 8-bit register */
- PARAM_REG16, /* 16-bit register */
- PARAM_REG2_8, /* 8-bit register */
- PARAM_REG2_16, /* 16-bit register */
- PARAM_RM8, /* 8-bit memory or register */
- PARAM_RM16, /* 16-bit memory or register */
- PARAM_RMPTR8, /* 8-bit memory or register */
- PARAM_RMPTR16, /* 16-bit memory or register */
- PARAM_I3, /* 3-bit immediate */
- PARAM_I4, /* 4-bit immediate */
- PARAM_I8, /* 8-bit signed immediate */
- PARAM_I16, /* 16-bit signed immediate */
- PARAM_UI8, /* 8-bit unsigned immediate */
- PARAM_IMM, /* 16-bit immediate */
- PARAM_ADDR, /* 16:16 address */
- PARAM_REL8, /* 8-bit PC-relative displacement */
- PARAM_REL16, /* 16-bit PC-relative displacement */
- PARAM_MEM_OFFS, /* 16-bit mem offset */
- PARAM_SREG, /* segment register */
- PARAM_SFREG, /* V25/V35 special function register */
- PARAM_1, /* used by shift/rotate instructions */
+ PARAM_REG8 = 1, /* 8-bit register */
+ PARAM_REG16, /* 16-bit register */
+ PARAM_REG2_8, /* 8-bit register */
+ PARAM_REG2_16, /* 16-bit register */
+ PARAM_RM8, /* 8-bit memory or register */
+ PARAM_RM16, /* 16-bit memory or register */
+ PARAM_RMPTR8, /* 8-bit memory or register */
+ PARAM_RMPTR16, /* 16-bit memory or register */
+ PARAM_I3, /* 3-bit immediate */
+ PARAM_I4, /* 4-bit immediate */
+ PARAM_I8, /* 8-bit signed immediate */
+ PARAM_I16, /* 16-bit signed immediate */
+ PARAM_UI8, /* 8-bit unsigned immediate */
+ PARAM_IMM, /* 16-bit immediate */
+ PARAM_ADDR, /* 16:16 address */
+ PARAM_REL8, /* 8-bit PC-relative displacement */
+ PARAM_REL16, /* 16-bit PC-relative displacement */
+ PARAM_MEM_OFFS, /* 16-bit mem offset */
+ PARAM_SREG, /* segment register */
+ PARAM_SFREG, /* V25/V35 special function register */
+ PARAM_1, /* used by shift/rotate instructions */
PARAM_AL,
PARAM_CL,
PARAM_DL,
@@ -94,726 +94,726 @@ static const UINT8 *opcode_ptr_base;
static const I386_OPCODE necv_opcode_table1[256] =
{
// 0x00
- {"add", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"add", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"add", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"add", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"add", 0, PARAM_AL, PARAM_UI8, 0 },
- {"add", 0, PARAM_AW, PARAM_IMM, 0 },
- {"push ds1", 0, 0, 0, 0 },
- {"pop ds1", 0, 0, 0, 0 },
- {"or", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"or", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"or", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"or", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"or", 0, PARAM_AL, PARAM_UI8, 0 },
- {"or", 0, PARAM_AW, PARAM_IMM, 0 },
- {"push ps", 0, 0, 0, 0 },
- {"two_byte", TWO_BYTE, 0, 0, 0 },
+ {"add", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"add", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"add", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"add", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"add", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"add", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"push ds1", 0, 0, 0, 0 },
+ {"pop ds1", 0, 0, 0, 0 },
+ {"or", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"or", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"or", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"or", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"or", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"or", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"push ps", 0, 0, 0, 0 },
+ {"two_byte", TWO_BYTE, 0, 0, 0 },
// 0x10
- {"addc", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"addc", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"addc", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"addc", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"addc", 0, PARAM_AL, PARAM_UI8, 0 },
- {"addc", 0, PARAM_AW, PARAM_IMM, 0 },
- {"push ss", 0, 0, 0, 0 },
- {"pop ss", 0, 0, 0, 0 },
- {"subc", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"subc", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"subc", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"subc", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"subc", 0, PARAM_AL, PARAM_UI8, 0 },
- {"subc", 0, PARAM_AW, PARAM_IMM, 0 },
- {"push ds0", 0, 0, 0, 0 },
- {"pop ds0", 0, 0, 0, 0 },
+ {"addc", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"addc", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"addc", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"addc", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"addc", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"addc", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"push ss", 0, 0, 0, 0 },
+ {"pop ss", 0, 0, 0, 0 },
+ {"subc", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"subc", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"subc", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"subc", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"subc", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"subc", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"push ds0", 0, 0, 0, 0 },
+ {"pop ds0", 0, 0, 0, 0 },
// 0x20
- {"and", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"and", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"and", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"and", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"and", 0, PARAM_AL, PARAM_UI8, 0 },
- {"and", 0, PARAM_AW, PARAM_IMM, 0 },
- {"ds1:", SEG_DS1, 0, 0, 0 },
- {"adj4a", 0, 0, 0, 0 },
- {"sub", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"sub", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"sub", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"sub", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"sub", 0, PARAM_AL, PARAM_UI8, 0 },
- {"sub", 0, PARAM_AW, PARAM_IMM, 0 },
- {"ps:", SEG_PS, 0, 0, 0 },
- {"adj4s", 0, 0, 0, 0 },
+ {"and", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"and", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"and", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"and", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"and", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"and", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"ds1:", SEG_DS1, 0, 0, 0 },
+ {"adj4a", 0, 0, 0, 0 },
+ {"sub", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"sub", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"sub", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"sub", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"sub", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"sub", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"ps:", SEG_PS, 0, 0, 0 },
+ {"adj4s", 0, 0, 0, 0 },
// 0x30
- {"xor", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"xor", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"xor", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"xor", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"xor", 0, PARAM_AL, PARAM_UI8, 0 },
- {"xor", 0, PARAM_AW, PARAM_IMM, 0 },
- {"ss:", SEG_SS, 0, 0, 0 },
- {"adjba", 0, 0, 0, 0 },
- {"cmp", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"cmp", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"cmp", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"cmp", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"cmp", 0, PARAM_AL, PARAM_UI8, 0 },
- {"cmp", 0, PARAM_AW, PARAM_IMM, 0 },
- {"ds0:", SEG_DS0, 0, 0, 0 },
- {"adjbs", 0, 0, 0, 0 },
+ {"xor", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"xor", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"xor", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"xor", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"xor", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"xor", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"ss:", SEG_SS, 0, 0, 0 },
+ {"adjba", 0, 0, 0, 0 },
+ {"cmp", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"cmp", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"cmp", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"cmp", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"cmp", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"cmp", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"ds0:", SEG_DS0, 0, 0, 0 },
+ {"adjbs", 0, 0, 0, 0 },
// 0x40
- {"inc", 0, PARAM_AW, 0, 0 },
- {"inc", 0, PARAM_CW, 0, 0 },
- {"inc", 0, PARAM_DW, 0, 0 },
- {"inc", 0, PARAM_BW, 0, 0 },
- {"inc", 0, PARAM_SP, 0, 0 },
- {"inc", 0, PARAM_BP, 0, 0 },
- {"inc", 0, PARAM_IX, 0, 0 },
- {"inc", 0, PARAM_IY, 0, 0 },
- {"dec", 0, PARAM_AW, 0, 0 },
- {"dec", 0, PARAM_CW, 0, 0 },
- {"dec", 0, PARAM_DW, 0, 0 },
- {"dec", 0, PARAM_BW, 0, 0 },
- {"dec", 0, PARAM_SP, 0, 0 },
- {"dec", 0, PARAM_BP, 0, 0 },
- {"dec", 0, PARAM_IX, 0, 0 },
- {"dec", 0, PARAM_IY, 0, 0 },
+ {"inc", 0, PARAM_AW, 0, 0 },
+ {"inc", 0, PARAM_CW, 0, 0 },
+ {"inc", 0, PARAM_DW, 0, 0 },
+ {"inc", 0, PARAM_BW, 0, 0 },
+ {"inc", 0, PARAM_SP, 0, 0 },
+ {"inc", 0, PARAM_BP, 0, 0 },
+ {"inc", 0, PARAM_IX, 0, 0 },
+ {"inc", 0, PARAM_IY, 0, 0 },
+ {"dec", 0, PARAM_AW, 0, 0 },
+ {"dec", 0, PARAM_CW, 0, 0 },
+ {"dec", 0, PARAM_DW, 0, 0 },
+ {"dec", 0, PARAM_BW, 0, 0 },
+ {"dec", 0, PARAM_SP, 0, 0 },
+ {"dec", 0, PARAM_BP, 0, 0 },
+ {"dec", 0, PARAM_IX, 0, 0 },
+ {"dec", 0, PARAM_IY, 0, 0 },
// 0x50
- {"push", 0, PARAM_AW, 0, 0 },
- {"push", 0, PARAM_CW, 0, 0 },
- {"push", 0, PARAM_DW, 0, 0 },
- {"push", 0, PARAM_BW, 0, 0 },
- {"push", 0, PARAM_SP, 0, 0 },
- {"push", 0, PARAM_BP, 0, 0 },
- {"push", 0, PARAM_IX, 0, 0 },
- {"push", 0, PARAM_IY, 0, 0 },
- {"pop", 0, PARAM_AW, 0, 0 },
- {"pop", 0, PARAM_CW, 0, 0 },
- {"pop", 0, PARAM_DW, 0, 0 },
- {"pop", 0, PARAM_BW, 0, 0 },
- {"pop", 0, PARAM_SP, 0, 0 },
- {"pop", 0, PARAM_BP, 0, 0 },
- {"pop", 0, PARAM_IX, 0, 0 },
- {"pop", 0, PARAM_IY, 0, 0 },
+ {"push", 0, PARAM_AW, 0, 0 },
+ {"push", 0, PARAM_CW, 0, 0 },
+ {"push", 0, PARAM_DW, 0, 0 },
+ {"push", 0, PARAM_BW, 0, 0 },
+ {"push", 0, PARAM_SP, 0, 0 },
+ {"push", 0, PARAM_BP, 0, 0 },
+ {"push", 0, PARAM_IX, 0, 0 },
+ {"push", 0, PARAM_IY, 0, 0 },
+ {"pop", 0, PARAM_AW, 0, 0 },
+ {"pop", 0, PARAM_CW, 0, 0 },
+ {"pop", 0, PARAM_DW, 0, 0 },
+ {"pop", 0, PARAM_BW, 0, 0 },
+ {"pop", 0, PARAM_SP, 0, 0 },
+ {"pop", 0, PARAM_BP, 0, 0 },
+ {"pop", 0, PARAM_IX, 0, 0 },
+ {"pop", 0, PARAM_IY, 0, 0 },
// 0x60
- {"push r", 0, 0, 0, 0 },
- {"pop r", 0, 0, 0, 0 },
- {"chkind", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"brkn", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER}, /* V25S/V35S only */
- {"repnc", PREFIX, 0, 0, 0 },
- {"repc", PREFIX, 0, 0, 0 },
- {"fpo2 0", 0, 0, 0, 0 }, /* for a coprocessor that was never made */
- {"fpo2 1", 0, 0, 0, 0 }, /* for a coprocessor that was never made */
- {"push", 0, PARAM_IMM, 0, 0 },
- {"mul", MODRM, PARAM_REG16, PARAM_RM16, PARAM_IMM },
- {"push", 0, PARAM_I8, 0, 0 },
- {"mul", MODRM, PARAM_REG16, PARAM_RM16, PARAM_I8 },
- {"inmb", 0, 0, 0, 0 },
- {"inmw", 0, 0, 0, 0 },
- {"outmb", 0, 0, 0, 0 },
- {"outmw", 0, 0, 0, 0 },
+ {"push r", 0, 0, 0, 0 },
+ {"pop r", 0, 0, 0, 0 },
+ {"chkind", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"brkn", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER}, /* V25S/V35S only */
+ {"repnc", PREFIX, 0, 0, 0 },
+ {"repc", PREFIX, 0, 0, 0 },
+ {"fpo2 0", 0, 0, 0, 0 }, /* for a coprocessor that was never made */
+ {"fpo2 1", 0, 0, 0, 0 }, /* for a coprocessor that was never made */
+ {"push", 0, PARAM_IMM, 0, 0 },
+ {"mul", MODRM, PARAM_REG16, PARAM_RM16, PARAM_IMM },
+ {"push", 0, PARAM_I8, 0, 0 },
+ {"mul", MODRM, PARAM_REG16, PARAM_RM16, PARAM_I8 },
+ {"inmb", 0, 0, 0, 0 },
+ {"inmw", 0, 0, 0, 0 },
+ {"outmb", 0, 0, 0, 0 },
+ {"outmw", 0, 0, 0, 0 },
// 0x70
- {"bv", 0, PARAM_REL8, 0, 0 },
- {"bnv", 0, PARAM_REL8, 0, 0 },
- {"bc", 0, PARAM_REL8, 0, 0 },
- {"bnc", 0, PARAM_REL8, 0, 0 },
- {"be", 0, PARAM_REL8, 0, 0 },
- {"bne", 0, PARAM_REL8, 0, 0 },
- {"bnh", 0, PARAM_REL8, 0, 0 },
- {"bh", 0, PARAM_REL8, 0, 0 },
- {"bn", 0, PARAM_REL8, 0, 0 },
- {"bp", 0, PARAM_REL8, 0, 0 },
- {"bpe", 0, PARAM_REL8, 0, 0 },
- {"bpo", 0, PARAM_REL8, 0, 0 },
- {"blt", 0, PARAM_REL8, 0, 0 },
- {"bge", 0, PARAM_REL8, 0, 0 },
- {"ble", 0, PARAM_REL8, 0, 0 },
- {"bgt", 0, PARAM_REL8, 0, 0 },
+ {"bv", 0, PARAM_REL8, 0, 0 },
+ {"bnv", 0, PARAM_REL8, 0, 0 },
+ {"bc", 0, PARAM_REL8, 0, 0 },
+ {"bnc", 0, PARAM_REL8, 0, 0 },
+ {"be", 0, PARAM_REL8, 0, 0 },
+ {"bne", 0, PARAM_REL8, 0, 0 },
+ {"bnh", 0, PARAM_REL8, 0, 0 },
+ {"bh", 0, PARAM_REL8, 0, 0 },
+ {"bn", 0, PARAM_REL8, 0, 0 },
+ {"bp", 0, PARAM_REL8, 0, 0 },
+ {"bpe", 0, PARAM_REL8, 0, 0 },
+ {"bpo", 0, PARAM_REL8, 0, 0 },
+ {"blt", 0, PARAM_REL8, 0, 0 },
+ {"bge", 0, PARAM_REL8, 0, 0 },
+ {"ble", 0, PARAM_REL8, 0, 0 },
+ {"bgt", 0, PARAM_REL8, 0, 0 },
// 0x80
- {"immb", GROUP, 0, 0, 0 },
- {"immw", GROUP, 0, 0, 0 },
- {"immb", GROUP, 0, 0, 0 },
- {"immws", GROUP, 0, 0, 0 },
- {"test", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"test", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"xch", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"xch", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"mov", MODRM, PARAM_RM8, PARAM_REG8, 0 },
- {"mov", MODRM, PARAM_RM16, PARAM_REG16, 0 },
- {"mov", MODRM, PARAM_REG8, PARAM_RM8, 0 },
- {"mov", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"mov", MODRM, PARAM_RM16, PARAM_SREG, 0 },
- {"ldea", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"mov", MODRM, PARAM_SREG, PARAM_RM16, 0 },
- {"pop", MODRM, PARAM_RM16, 0, 0 },
+ {"immb", GROUP, 0, 0, 0 },
+ {"immw", GROUP, 0, 0, 0 },
+ {"immb", GROUP, 0, 0, 0 },
+ {"immws", GROUP, 0, 0, 0 },
+ {"test", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"test", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"xch", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"xch", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"mov", MODRM, PARAM_RM8, PARAM_REG8, 0 },
+ {"mov", MODRM, PARAM_RM16, PARAM_REG16, 0 },
+ {"mov", MODRM, PARAM_REG8, PARAM_RM8, 0 },
+ {"mov", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"mov", MODRM, PARAM_RM16, PARAM_SREG, 0 },
+ {"ldea", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"mov", MODRM, PARAM_SREG, PARAM_RM16, 0 },
+ {"pop", MODRM, PARAM_RM16, 0, 0 },
// 0x90
- {"nop", 0, 0, 0, 0 },
- {"xch", 0, PARAM_AW, PARAM_CW, 0 },
- {"xch", 0, PARAM_AW, PARAM_DW, 0 },
- {"xch", 0, PARAM_AW, PARAM_BW, 0 },
- {"xch", 0, PARAM_AW, PARAM_SP, 0 },
- {"xch", 0, PARAM_AW, PARAM_BP, 0 },
- {"xch", 0, PARAM_AW, PARAM_IX, 0 },
- {"xch", 0, PARAM_AW, PARAM_IY, 0 },
- {"cvtbw", 0, 0, 0, 0 },
- {"cvtwl", 0, 0, 0, 0 },
- {"call", 0, PARAM_ADDR, 0, 0, DASMFLAG_STEP_OVER},
- {"poll", 0, 0, 0, 0 },
- {"push psw", 0, 0, 0, 0 },
- {"pop psw", 0, 0, 0, 0 },
- {"mov psw,ah", 0, 0, 0, 0 },
- {"mov ah,psw", 0, 0, 0, 0 },
+ {"nop", 0, 0, 0, 0 },
+ {"xch", 0, PARAM_AW, PARAM_CW, 0 },
+ {"xch", 0, PARAM_AW, PARAM_DW, 0 },
+ {"xch", 0, PARAM_AW, PARAM_BW, 0 },
+ {"xch", 0, PARAM_AW, PARAM_SP, 0 },
+ {"xch", 0, PARAM_AW, PARAM_BP, 0 },
+ {"xch", 0, PARAM_AW, PARAM_IX, 0 },
+ {"xch", 0, PARAM_AW, PARAM_IY, 0 },
+ {"cvtbw", 0, 0, 0, 0 },
+ {"cvtwl", 0, 0, 0, 0 },
+ {"call", 0, PARAM_ADDR, 0, 0, DASMFLAG_STEP_OVER},
+ {"poll", 0, 0, 0, 0 },
+ {"push psw", 0, 0, 0, 0 },
+ {"pop psw", 0, 0, 0, 0 },
+ {"mov psw,ah", 0, 0, 0, 0 },
+ {"mov ah,psw", 0, 0, 0, 0 },
// 0xa0
- {"mov", 0, PARAM_AL, PARAM_MEM_OFFS, 0 },
- {"mov", 0, PARAM_AW, PARAM_MEM_OFFS, 0 },
- {"mov", 0, PARAM_MEM_OFFS, PARAM_AL, 0 },
- {"mov", 0, PARAM_MEM_OFFS, PARAM_AW, 0 },
- {"movbkb", 0, 0, 0, 0 },
- {"movbkw", 0, 0, 0, 0 },
- {"cmpbkb", 0, 0, 0, 0 },
- {"cmpbkw", 0, 0, 0, 0 },
- {"test", 0, PARAM_AL, PARAM_UI8, 0 },
- {"test", 0, PARAM_AW, PARAM_IMM, 0 },
- {"stmb", 0, 0, 0, 0 },
- {"stmw", 0, 0, 0, 0 },
- {"ldmb", 0, 0, 0, 0 },
- {"ldmw", 0, 0, 0, 0 },
- {"cmpmb", 0, 0, 0, 0 },
- {"cmpmw", 0, 0, 0, 0 },
+ {"mov", 0, PARAM_AL, PARAM_MEM_OFFS, 0 },
+ {"mov", 0, PARAM_AW, PARAM_MEM_OFFS, 0 },
+ {"mov", 0, PARAM_MEM_OFFS, PARAM_AL, 0 },
+ {"mov", 0, PARAM_MEM_OFFS, PARAM_AW, 0 },
+ {"movbkb", 0, 0, 0, 0 },
+ {"movbkw", 0, 0, 0, 0 },
+ {"cmpbkb", 0, 0, 0, 0 },
+ {"cmpbkw", 0, 0, 0, 0 },
+ {"test", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"test", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"stmb", 0, 0, 0, 0 },
+ {"stmw", 0, 0, 0, 0 },
+ {"ldmb", 0, 0, 0, 0 },
+ {"ldmw", 0, 0, 0, 0 },
+ {"cmpmb", 0, 0, 0, 0 },
+ {"cmpmw", 0, 0, 0, 0 },
// 0xb0
- {"mov", 0, PARAM_AL, PARAM_UI8, 0 },
- {"mov", 0, PARAM_CL, PARAM_UI8, 0 },
- {"mov", 0, PARAM_DL, PARAM_UI8, 0 },
- {"mov", 0, PARAM_BL, PARAM_UI8, 0 },
- {"mov", 0, PARAM_AH, PARAM_UI8, 0 },
- {"mov", 0, PARAM_CH, PARAM_UI8, 0 },
- {"mov", 0, PARAM_DH, PARAM_UI8, 0 },
- {"mov", 0, PARAM_BH, PARAM_UI8, 0 },
- {"mov", 0, PARAM_AW, PARAM_IMM, 0 },
- {"mov", 0, PARAM_CW, PARAM_IMM, 0 },
- {"mov", 0, PARAM_DW, PARAM_IMM, 0 },
- {"mov", 0, PARAM_BW, PARAM_IMM, 0 },
- {"mov", 0, PARAM_SP, PARAM_IMM, 0 },
- {"mov", 0, PARAM_BP, PARAM_IMM, 0 },
- {"mov", 0, PARAM_IX, PARAM_IMM, 0 },
- {"mov", 0, PARAM_IY, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_CL, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_DL, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_BL, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_AH, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_CH, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_DH, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_BH, PARAM_UI8, 0 },
+ {"mov", 0, PARAM_AW, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_CW, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_DW, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_BW, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_SP, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_BP, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_IX, PARAM_IMM, 0 },
+ {"mov", 0, PARAM_IY, PARAM_IMM, 0 },
// 0xc0
- {"shiftbi", GROUP, 0, 0, 0 },
- {"shiftwi", GROUP, 0, 0, 0 },
- {"ret", 0, PARAM_I16, 0, 0, DASMFLAG_STEP_OUT},
- {"ret", 0, 0, 0, 0, DASMFLAG_STEP_OUT},
- {"mov ds1,", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"mov ds0,", MODRM, PARAM_REG16, PARAM_RM16, 0 },
- {"mov", MODRM, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"mov", MODRM, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"prepare", 0, PARAM_I16, PARAM_UI8, 0 },
- {"dispose", 0, 0, 0, 0 },
- {"retf", 0, PARAM_I16, 0, 0, DASMFLAG_STEP_OUT},
- {"retf", 0, 0, 0, 0, DASMFLAG_STEP_OUT},
- {"brk 3", 0, 0, 0, 0, DASMFLAG_STEP_OVER},
- {"brk", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER},
- {"brkv", 0, 0, 0, 0 },
- {"reti", 0, 0, 0, 0, DASMFLAG_STEP_OUT},
+ {"shiftbi", GROUP, 0, 0, 0 },
+ {"shiftwi", GROUP, 0, 0, 0 },
+ {"ret", 0, PARAM_I16, 0, 0, DASMFLAG_STEP_OUT},
+ {"ret", 0, 0, 0, 0, DASMFLAG_STEP_OUT},
+ {"mov ds1,", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"mov ds0,", MODRM, PARAM_REG16, PARAM_RM16, 0 },
+ {"mov", MODRM, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"mov", MODRM, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"prepare", 0, PARAM_I16, PARAM_UI8, 0 },
+ {"dispose", 0, 0, 0, 0 },
+ {"retf", 0, PARAM_I16, 0, 0, DASMFLAG_STEP_OUT},
+ {"retf", 0, 0, 0, 0, DASMFLAG_STEP_OUT},
+ {"brk 3", 0, 0, 0, 0, DASMFLAG_STEP_OVER},
+ {"brk", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER},
+ {"brkv", 0, 0, 0, 0 },
+ {"reti", 0, 0, 0, 0, DASMFLAG_STEP_OUT},
// 0xd0
- {"shiftb", GROUP, 0, 0, 0 },
- {"shiftw", GROUP, 0, 0, 0 },
- {"shiftbv", GROUP, 0, 0, 0 },
- {"shiftwv", GROUP, 0, 0, 0 },
- {"cvtbd", 0, PARAM_I8, 0, 0 },
- {"cvtdb", 0, PARAM_I8, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"trans", 0, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
- {"escape", FPU, 0, 0, 0 },
+ {"shiftb", GROUP, 0, 0, 0 },
+ {"shiftw", GROUP, 0, 0, 0 },
+ {"shiftbv", GROUP, 0, 0, 0 },
+ {"shiftwv", GROUP, 0, 0, 0 },
+ {"cvtbd", 0, PARAM_I8, 0, 0 },
+ {"cvtdb", 0, PARAM_I8, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"trans", 0, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
+ {"escape", FPU, 0, 0, 0 },
// 0xe0
- {"dbnzne", 0, PARAM_REL8, 0, 0, DASMFLAG_STEP_OVER},
- {"dbnze", 0, PARAM_REL8, 0, 0, DASMFLAG_STEP_OVER},
- {"dbnz", 0, PARAM_REL8, 0, 0, DASMFLAG_STEP_OVER},
- {"bcwz", 0, PARAM_REL8, 0, 0 },
- {"in", 0, PARAM_AL, PARAM_UI8, 0 },
- {"in", 0, PARAM_AW, PARAM_UI8, 0 },
- {"out", 0, PARAM_UI8, PARAM_AL, 0 },
- {"out", 0, PARAM_UI8, PARAM_AW, 0 },
- {"call", 0, PARAM_REL16, 0, 0, DASMFLAG_STEP_OVER},
- {"br", 0, PARAM_REL16, 0, 0 },
- {"br", 0, PARAM_ADDR, 0, 0 },
- {"br", 0, PARAM_REL8, 0, 0 },
- {"in", 0, PARAM_AL, PARAM_DW, 0 },
- {"in", 0, PARAM_AW, PARAM_DW, 0 },
- {"out", 0, PARAM_DW, PARAM_AL, 0 },
- {"out", 0, PARAM_DW, PARAM_AW, 0 },
+ {"dbnzne", 0, PARAM_REL8, 0, 0, DASMFLAG_STEP_OVER},
+ {"dbnze", 0, PARAM_REL8, 0, 0, DASMFLAG_STEP_OVER},
+ {"dbnz", 0, PARAM_REL8, 0, 0, DASMFLAG_STEP_OVER},
+ {"bcwz", 0, PARAM_REL8, 0, 0 },
+ {"in", 0, PARAM_AL, PARAM_UI8, 0 },
+ {"in", 0, PARAM_AW, PARAM_UI8, 0 },
+ {"out", 0, PARAM_UI8, PARAM_AL, 0 },
+ {"out", 0, PARAM_UI8, PARAM_AW, 0 },
+ {"call", 0, PARAM_REL16, 0, 0, DASMFLAG_STEP_OVER},
+ {"br", 0, PARAM_REL16, 0, 0 },
+ {"br", 0, PARAM_ADDR, 0, 0 },
+ {"br", 0, PARAM_REL8, 0, 0 },
+ {"in", 0, PARAM_AL, PARAM_DW, 0 },
+ {"in", 0, PARAM_AW, PARAM_DW, 0 },
+ {"out", 0, PARAM_DW, PARAM_AL, 0 },
+ {"out", 0, PARAM_DW, PARAM_AW, 0 },
// 0xf0
- {"buslock", PREFIX, 0, 0, 0 },
- {"brks", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER}, /* V25S/V35S only */
- {"repne", PREFIX, 0, 0, 0 },
- {"rep", PREFIX, 0, 0, 0 },
- {"halt", 0, 0, 0, 0 },
- {"not1 cy", 0, 0, 0, 0 },
- {"group1b", GROUP, 0, 0, 0 },
- {"group1w", GROUP, 0, 0, 0 },
- {"clr1 cy", 0, 0, 0, 0 },
- {"set1 cy", 0, 0, 0, 0 },
- {"di", 0, 0, 0, 0 },
- {"ei", 0, 0, 0, 0 },
- {"clr1 dir", 0, 0, 0, 0 },
- {"set1 dir", 0, 0, 0, 0 },
- {"group2b", GROUP, 0, 0, 0 },
- {"group2w", GROUP, 0, 0, 0 }
+ {"buslock", PREFIX, 0, 0, 0 },
+ {"brks", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER}, /* V25S/V35S only */
+ {"repne", PREFIX, 0, 0, 0 },
+ {"rep", PREFIX, 0, 0, 0 },
+ {"halt", 0, 0, 0, 0 },
+ {"not1 cy", 0, 0, 0, 0 },
+ {"group1b", GROUP, 0, 0, 0 },
+ {"group1w", GROUP, 0, 0, 0 },
+ {"clr1 cy", 0, 0, 0, 0 },
+ {"set1 cy", 0, 0, 0, 0 },
+ {"di", 0, 0, 0, 0 },
+ {"ei", 0, 0, 0, 0 },
+ {"clr1 dir", 0, 0, 0, 0 },
+ {"set1 dir", 0, 0, 0, 0 },
+ {"group2b", GROUP, 0, 0, 0 },
+ {"group2w", GROUP, 0, 0, 0 }
};
static const I386_OPCODE necv_opcode_table2[256] =
{
// 0x00
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x10
- {"test1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
- {"test1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
- {"clr1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
- {"clr1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
- {"set1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
- {"set1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
- {"not1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
- {"not1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
- {"test1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
- {"test1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
- {"clr1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
- {"clr1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
- {"set1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
- {"set1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
- {"not1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
- {"not1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
+ {"test1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"test1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"clr1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"clr1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"set1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"set1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"not1", MODRM, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"not1", MODRM, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"test1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
+ {"test1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
+ {"clr1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
+ {"clr1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
+ {"set1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
+ {"set1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
+ {"not1", MODRM, PARAM_RMPTR8, PARAM_I3, 0 },
+ {"not1", MODRM, PARAM_RMPTR16, PARAM_I4, 0 },
// 0x20
- {"add4s", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"sub4s", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"movspa", 0, 0, 0, 0 }, /* V25/V35 only */
- {"cmp4s", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"rol4", MODRM, PARAM_RMPTR8, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"ror4", MODRM, PARAM_RMPTR8, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"brkcs", MODRM, PARAM_REG2_16, 0, 0, DASMFLAG_STEP_OVER}, /* V25/V35 only */
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"add4s", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"sub4s", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"movspa", 0, 0, 0, 0 }, /* V25/V35 only */
+ {"cmp4s", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"rol4", MODRM, PARAM_RMPTR8, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"ror4", MODRM, PARAM_RMPTR8, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"brkcs", MODRM, PARAM_REG2_16, 0, 0, DASMFLAG_STEP_OVER}, /* V25/V35 only */
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x30
- {"???", 0, 0, 0, 0 },
- {"ins", MODRM, PARAM_REG2_8, PARAM_REG8, 0 },
- {"???", 0, 0, 0, 0 },
- {"ext", MODRM, PARAM_REG2_8, PARAM_REG8, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"ins", MODRM, PARAM_REG2_8, PARAM_I4, 0 },
- {"???", 0, 0, 0, 0 },
- {"ext", MODRM, PARAM_REG2_8, PARAM_I4, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"ins", MODRM, PARAM_REG2_8, PARAM_REG8, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"ext", MODRM, PARAM_REG2_8, PARAM_REG8, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"ins", MODRM, PARAM_REG2_8, PARAM_I4, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"ext", MODRM, PARAM_REG2_8, PARAM_I4, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x40
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x50
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x60
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x70
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x80
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0x90
- {"???", 0, 0, 0, 0 },
- {"retrbi", 0, 0, 0, 0 }, /* V25/V35 only */
- {"fint", 0, 0, 0, 0 }, /* V25/V35 only */
- {"???", 0, 0, 0, 0 },
- {"tsksw", MODRM, PARAM_REG2_16, 0, 0 }, /* V25/V35 only */
- {"movspb", MODRM, PARAM_REG2_16, 0, 0 }, /* V25/V35 only */
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"btclr", 0, PARAM_SFREG, PARAM_I3, PARAM_REL8 }, /* V25/V35 only */
- {"???", 0, 0, 0, 0 },
- {"stop", 0, 0, 0, 0 }, /* V25/V35 only */
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"retrbi", 0, 0, 0, 0 }, /* V25/V35 only */
+ {"fint", 0, 0, 0, 0 }, /* V25/V35 only */
+ {"???", 0, 0, 0, 0 },
+ {"tsksw", MODRM, PARAM_REG2_16, 0, 0 }, /* V25/V35 only */
+ {"movspb", MODRM, PARAM_REG2_16, 0, 0 }, /* V25/V35 only */
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"btclr", 0, PARAM_SFREG, PARAM_I3, PARAM_REL8 }, /* V25/V35 only */
+ {"???", 0, 0, 0, 0 },
+ {"stop", 0, 0, 0, 0 }, /* V25/V35 only */
+ {"???", 0, 0, 0, 0 },
// 0xa0
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0xb0
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0xc0
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0xd0
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0xe0
- {"brkxa", 0, PARAM_UI8, 0, 0 }, /* V33,53 only */
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
+ {"brkxa", 0, PARAM_UI8, 0, 0 }, /* V33,53 only */
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
// 0xf0
- {"retxa", 0, PARAM_UI8, 0, 0 }, /* V33,53 only */
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"brkem", 0, PARAM_UI8, 0, 0 } /* V20,30,40,50 only */
+ {"retxa", 0, PARAM_UI8, 0, 0 }, /* V33,53 only */
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"brkem", 0, PARAM_UI8, 0, 0 } /* V20,30,40,50 only */
};
static const I386_OPCODE immb_table[8] =
{
- {"add", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"or", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"addc", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"subc", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"and", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"sub", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"xor", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"cmp", 0, PARAM_RMPTR8, PARAM_UI8, 0 }
+ {"add", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"or", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"addc", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"subc", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"and", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"sub", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"xor", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"cmp", 0, PARAM_RMPTR8, PARAM_UI8, 0 }
};
static const I386_OPCODE immw_table[8] =
{
- {"add", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"or", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"addc", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"subc", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"and", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"sub", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"xor", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"cmp", 0, PARAM_RMPTR16, PARAM_IMM, 0 }
+ {"add", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"or", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"addc", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"subc", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"and", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"sub", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"xor", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"cmp", 0, PARAM_RMPTR16, PARAM_IMM, 0 }
};
static const I386_OPCODE immws_table[8] =
{
- {"add", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"or", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"addc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"subc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"and", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"sub", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"xor", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"cmp", 0, PARAM_RMPTR16, PARAM_I8, 0 }
+ {"add", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"or", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"addc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"subc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"and", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"sub", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"xor", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"cmp", 0, PARAM_RMPTR16, PARAM_I8, 0 }
};
static const I386_OPCODE shiftbi_table[8] =
{
- {"rol", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"ror", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"rolc", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"rorc", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"shl", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"shr", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"???", 0, PARAM_RMPTR8, PARAM_I8, 0 },
- {"shra", 0, PARAM_RMPTR8, PARAM_I8, 0 }
+ {"rol", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"ror", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"rolc", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"rorc", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"shl", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"shr", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"???", 0, PARAM_RMPTR8, PARAM_I8, 0 },
+ {"shra", 0, PARAM_RMPTR8, PARAM_I8, 0 }
};
static const I386_OPCODE shiftwi_table[8] =
{
- {"rol", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"ror", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"rolc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"rorc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"shl", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"shr", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"???", 0, PARAM_RMPTR16, PARAM_I8, 0 },
- {"shra", 0, PARAM_RMPTR16, PARAM_I8, 0 }
+ {"rol", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"ror", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"rolc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"rorc", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"shl", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"shr", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"???", 0, PARAM_RMPTR16, PARAM_I8, 0 },
+ {"shra", 0, PARAM_RMPTR16, PARAM_I8, 0 }
};
static const I386_OPCODE shiftb_table[8] =
{
- {"rol", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"ror", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"rolc", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"rorc", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"shl", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"shr", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"???", 0, PARAM_RMPTR8, PARAM_1, 0 },
- {"shra", 0, PARAM_RMPTR8, PARAM_1, 0 }
+ {"rol", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"ror", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"rolc", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"rorc", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"shl", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"shr", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"???", 0, PARAM_RMPTR8, PARAM_1, 0 },
+ {"shra", 0, PARAM_RMPTR8, PARAM_1, 0 }
};
static const I386_OPCODE shiftw_table[8] =
{
- {"rol", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"ror", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"rolc", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"rorc", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"shl", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"shr", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"???", 0, PARAM_RMPTR16, PARAM_1, 0 },
- {"shra", 0, PARAM_RMPTR16, PARAM_1, 0 }
+ {"rol", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"ror", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"rolc", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"rorc", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"shl", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"shr", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"???", 0, PARAM_RMPTR16, PARAM_1, 0 },
+ {"shra", 0, PARAM_RMPTR16, PARAM_1, 0 }
};
static const I386_OPCODE shiftbv_table[8] =
{
- {"rol", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"ror", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"rolc", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"rorc", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"shl", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"shr", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"???", 0, PARAM_RMPTR8, PARAM_CL, 0 },
- {"shra", 0, PARAM_RMPTR8, PARAM_CL, 0 }
+ {"rol", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"ror", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"rolc", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"rorc", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"shl", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"shr", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"???", 0, PARAM_RMPTR8, PARAM_CL, 0 },
+ {"shra", 0, PARAM_RMPTR8, PARAM_CL, 0 }
};
static const I386_OPCODE shiftwv_table[8] =
{
- {"rol", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"ror", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"rolc", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"rorc", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"shl", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"shr", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"???", 0, PARAM_RMPTR16, PARAM_CL, 0 },
- {"shra", 0, PARAM_RMPTR16, PARAM_CL, 0 }
+ {"rol", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"ror", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"rolc", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"rorc", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"shl", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"shr", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"???", 0, PARAM_RMPTR16, PARAM_CL, 0 },
+ {"shra", 0, PARAM_RMPTR16, PARAM_CL, 0 }
};
static const I386_OPCODE group1b_table[8] =
{
- {"test", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
- {"???", 0, 0, 0, 0 },
- {"not", 0, PARAM_RMPTR8, 0, 0 },
- {"neg", 0, PARAM_RMPTR8, 0, 0 },
- {"mulu", 0, PARAM_RMPTR8, 0, 0 },
- {"mul", 0, PARAM_RMPTR8, 0, 0 },
- {"divu", 0, PARAM_RMPTR8, 0, 0 },
- {"div", 0, PARAM_RMPTR8, 0, 0 }
+ {"test", 0, PARAM_RMPTR8, PARAM_UI8, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"not", 0, PARAM_RMPTR8, 0, 0 },
+ {"neg", 0, PARAM_RMPTR8, 0, 0 },
+ {"mulu", 0, PARAM_RMPTR8, 0, 0 },
+ {"mul", 0, PARAM_RMPTR8, 0, 0 },
+ {"divu", 0, PARAM_RMPTR8, 0, 0 },
+ {"div", 0, PARAM_RMPTR8, 0, 0 }
};
static const I386_OPCODE group1w_table[8] =
{
- {"test", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
- {"???", 0, 0, 0, 0 },
- {"not", 0, PARAM_RMPTR16, 0, 0 },
- {"neg", 0, PARAM_RMPTR16, 0, 0 },
- {"mulu", 0, PARAM_RMPTR16, 0, 0 },
- {"mul", 0, PARAM_RMPTR16, 0, 0 },
- {"divu", 0, PARAM_RMPTR16, 0, 0 },
- {"div", 0, PARAM_RMPTR16, 0, 0 }
+ {"test", 0, PARAM_RMPTR16, PARAM_IMM, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"not", 0, PARAM_RMPTR16, 0, 0 },
+ {"neg", 0, PARAM_RMPTR16, 0, 0 },
+ {"mulu", 0, PARAM_RMPTR16, 0, 0 },
+ {"mul", 0, PARAM_RMPTR16, 0, 0 },
+ {"divu", 0, PARAM_RMPTR16, 0, 0 },
+ {"div", 0, PARAM_RMPTR16, 0, 0 }
};
static const I386_OPCODE group2b_table[8] =
{
- {"inc", 0, PARAM_RMPTR8, 0, 0 },
- {"dec", 0, PARAM_RMPTR8, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 },
- {"???", 0, 0, 0, 0 }
+ {"inc", 0, PARAM_RMPTR8, 0, 0 },
+ {"dec", 0, PARAM_RMPTR8, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 },
+ {"???", 0, 0, 0, 0 }
};
static const I386_OPCODE group2w_table[8] =
{
- {"inc", 0, PARAM_RMPTR16, 0, 0 },
- {"dec", 0, PARAM_RMPTR16, 0, 0 },
- {"call", 0, PARAM_RMPTR16, 0, 0, DASMFLAG_STEP_OVER},
- {"call far ptr ",0, PARAM_RM16, 0, 0, DASMFLAG_STEP_OVER},
- {"br", 0, PARAM_RMPTR16, 0, 0 },
- {"br far ptr ",0, PARAM_RM16, 0, 0 },
- {"push", 0, PARAM_RMPTR16, 0, 0 },
- {"???", 0, 0, 0, 0 }
+ {"inc", 0, PARAM_RMPTR16, 0, 0 },
+ {"dec", 0, PARAM_RMPTR16, 0, 0 },
+ {"call", 0, PARAM_RMPTR16, 0, 0, DASMFLAG_STEP_OVER},
+ {"call far ptr ",0, PARAM_RM16, 0, 0, DASMFLAG_STEP_OVER},
+ {"br", 0, PARAM_RMPTR16, 0, 0 },
+ {"br far ptr ",0, PARAM_RM16, 0, 0 },
+ {"push", 0, PARAM_RMPTR16, 0, 0 },
+ {"???", 0, 0, 0, 0 }
};
static const GROUP_OP group_op_table[] =
{
- { "immb", immb_table },
- { "immw", immw_table },
- { "immws", immws_table },
- { "shiftbi", shiftbi_table },
- { "shiftwi", shiftwi_table },
- { "shiftb", shiftb_table },
- { "shiftw", shiftw_table },
- { "shiftbv", shiftbv_table },
- { "shiftwv", shiftwv_table },
- { "group1b", group1b_table },
- { "group1w", group1w_table },
- { "group2b", group2b_table },
- { "group2w", group2w_table }
+ { "immb", immb_table },
+ { "immw", immw_table },
+ { "immws", immws_table },
+ { "shiftbi", shiftbi_table },
+ { "shiftwi", shiftwi_table },
+ { "shiftb", shiftb_table },
+ { "shiftw", shiftw_table },
+ { "shiftbv", shiftbv_table },
+ { "shiftwv", shiftwv_table },
+ { "group1b", group1b_table },
+ { "group1w", group1w_table },
+ { "group2b", group2b_table },
+ { "group2w", group2w_table }
};
@@ -824,53 +824,53 @@ static const char *const nec_sreg[8] = { "ds1", "ps", "ss", "ds0", "???", "???",
static const char *const nec_sfreg[256] =
{
/* 0x00 */
- "p0", "pm0", "pmc0", "???", "???", "???", "???", "???",
- "p1", "pm1", "pmc1", "???", "???", "???", "???", "???",
+ "p0", "pm0", "pmc0", "???", "???", "???", "???", "???",
+ "p1", "pm1", "pmc1", "???", "???", "???", "???", "???",
/* 0x10 */
- "p2", "pm2", "pmc2", "???", "???", "???", "???", "???",
- "???", "???", "???", "???", "???", "???", "???", "???",
+ "p2", "pm2", "pmc2", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
/* 0x20 */
- "???", "???", "???", "???", "???", "???", "???", "???",
- "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
/* 0x30 */
- "???", "???", "???", "???", "???", "???", "???", "???",
- "pt", "???", "???", "pmt", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
+ "pt", "???", "???", "pmt", "???", "???", "???", "???",
/* 0x40 */
- "intm", "???", "???", "???", "ems0", "ems1", "ems2", "???",
- "???", "???", "???", "???", "exic0","exic1","exic2","???",
+ "intm", "???", "???", "???", "ems0", "ems1", "ems2", "???",
+ "???", "???", "???", "???", "exic0","exic1","exic2","???",
/* 0x50 */
- "???", "???", "???", "???", "???", "???", "???", "???",
- "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
/* 0x60 */
- "rxb0", "???", "txb0", "???", "???", "srms0","stms0","???",
- "scm0", "scc0", "brg0", "scs0", "seic0","sric0","stic0","???",
+ "rxb0", "???", "txb0", "???", "???", "srms0","stms0","???",
+ "scm0", "scc0", "brg0", "scs0", "seic0","sric0","stic0","???",
/* 0x70 */
- "rxb1", "???", "txb1", "???", "???", "srms1","stms1","???",
- "scm1", "scc1", "brg1", "scs1", "seic1","sric1","stic1","???",
+ "rxb1", "???", "txb1", "???", "???", "srms1","stms1","???",
+ "scm1", "scc1", "brg1", "scs1", "seic1","sric1","stic1","???",
/* 0x80 */
- "tm0", "???", "md0", "???", "???", "???", "???", "???",
- "tm1", "???", "md1", "???", "???", "???", "???", "???",
+ "tm0", "???", "md0", "???", "???", "???", "???", "???",
+ "tm1", "???", "md1", "???", "???", "???", "???", "???",
/* 0x90 */
- "tmc0", "tmc1", "???", "???", "tmms0","tmms1","tmms2","???",
- "???", "???", "???", "???", "tmic0","tmic1","tmic2","???",
+ "tmc0", "tmc1", "???", "???", "tmms0","tmms1","tmms2","???",
+ "???", "???", "???", "???", "tmic0","tmic1","tmic2","???",
/* 0xa0 */
- "dmac0","dmam0","dmac1","dmam1","???", "???", "???", "???",
- "???", "???", "???", "???", "dic0", "dic1", "???", "???",
+ "dmac0","dmam0","dmac1","dmam1","???", "???", "???", "???",
+ "???", "???", "???", "???", "dic0", "dic1", "???", "???",
/* 0xb0 */
- "???", "???", "???", "???", "???", "???", "???", "???",
- "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "???", "???", "???", "???",
/* 0xc0 */
- "sar0l","sar0m","sar0h","???", "dar0l","dar0m","dar0h","???",
- "tc0l", "tc0h", "???", "???", "???", "???", "???", "???",
+ "sar0l","sar0m","sar0h","???", "dar0l","dar0m","dar0h","???",
+ "tc0l", "tc0h", "???", "???", "???", "???", "???", "???",
/* 0xd0 */
- "sar1l","sar1m","sar1h","???", "dar1l","dar1m","dar1h","???",
- "tc1l", "tc1h", "???", "???", "???", "???", "???", "???",
+ "sar1l","sar1m","sar1h","???", "dar1l","dar1m","dar1h","???",
+ "tc1l", "tc1h", "???", "???", "???", "???", "???", "???",
/* 0xe0 */
- "stbc", "rfm", "???", "???", "???", "???", "???", "???",
- "wtc", "???", "flag", "prc", "tbic", "???", "???", "irqs",
+ "stbc", "rfm", "???", "???", "???", "???", "???", "???",
+ "wtc", "???", "flag", "prc", "tbic", "???", "???", "irqs",
/* 0xf0 */
- "???", "???", "???", "???", "???", "???", "???", "???",
- "???", "???", "???", "???", "ispr", "???", "???", "idb"
+ "???", "???", "???", "???", "???", "???", "???", "???",
+ "???", "???", "???", "???", "ispr", "???", "???", "idb"
};
static UINT32 pc;
@@ -879,10 +879,10 @@ static UINT32 segment;
static offs_t dasm_flags;
static char modrm_string[256];
-#define MODRM_REG1 ((modrm >> 3) & 0x7)
-#define MODRM_REG2 (modrm & 0x7)
+#define MODRM_REG1 ((modrm >> 3) & 0x7)
+#define MODRM_REG2 (modrm & 0x7)
-#define MAX_LENGTH 8
+#define MAX_LENGTH 8
INLINE UINT8 FETCH(void)
{
@@ -1143,11 +1143,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
{
switch (op1 & 0x7)
{
- case 0: // Group D8
+ case 0: // Group D8
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1179,11 +1179,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 1: // Group D9
+ case 1: // Group D9
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1243,11 +1243,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 2: // Group DA
+ case 2: // Group DA
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1285,11 +1285,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 3: // Group DB
+ case 3: // Group DB
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1335,11 +1335,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 4: // Group DC
+ case 4: // Group DC
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1382,11 +1382,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 5: // Group DD
+ case 5: // Group DD
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1426,11 +1426,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 6: // Group DE
+ case 6: // Group DE
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1475,11 +1475,11 @@ static void handle_fpu(char *s, UINT8 op1, UINT8 op2)
break;
}
- case 7: // Group DF
+ case 7: // Group DF
{
if (op2 < 0xc0)
{
- pc--; // adjust fetch pointer, so modrm byte read again
+ pc--; // adjust fetch pointer, so modrm byte read again
opcode_ptr--;
handle_modrm( modrm_string );
switch ((op2 >> 3) & 0x7)
@@ -1609,4 +1609,3 @@ CPU_DISASSEMBLE( nec_generic )
{
return necv_dasm_one(buffer, pc, oprom, NULL);
}
-