forked from sin365/AxibugEmuOnline
MAME:修改NEC平台 处理器调度方式,提升效率,instruction/GetEA .不再使用委托大数组。改为枚举派发硬编码
This commit is contained in:
parent
9bed2f1597
commit
0e93a85a1f
@ -130,10 +130,10 @@ namespace cpu.nec
|
||||
public Action<int, byte> WriteIOByte;
|
||||
public Func<int, ushort> ReadIOWord;
|
||||
public Action<int, ushort> WriteIOWord;
|
||||
public delegate void nec_delegate();
|
||||
public nec_delegate[] nec_instruction;
|
||||
public delegate int getea_delegate();
|
||||
public getea_delegate[] GetEA;
|
||||
//public delegate void nec_delegate();
|
||||
//public nec_delegate[] nec_instruction;
|
||||
//public delegate int getea_delegate();
|
||||
//public getea_delegate[] GetEA;
|
||||
public Nec()
|
||||
{
|
||||
nec_init();
|
||||
@ -483,7 +483,8 @@ namespace cpu.nec
|
||||
}
|
||||
else
|
||||
{
|
||||
EA = GetEA[ModRM]();
|
||||
//EA = GetEA[ModRM]();
|
||||
EA = DoNecGetEAOpCode(ModRM);
|
||||
tmp = ReadByte(EA);
|
||||
}
|
||||
}
|
||||
@ -496,7 +497,8 @@ namespace cpu.nec
|
||||
}
|
||||
else
|
||||
{
|
||||
EA = GetEA[ModRM]();
|
||||
//EA = GetEA[ModRM]();
|
||||
EA = DoNecGetEAOpCode(ModRM);
|
||||
tmp = ReadWord(EA);
|
||||
}
|
||||
}
|
||||
@ -801,6 +803,8 @@ namespace cpu.nec
|
||||
mod_RM.regb = new int[256];
|
||||
mod_RM.RMw = new int[256];
|
||||
mod_RM.RMb = new int[256];
|
||||
//更换调度方式,不再依赖Delegate委托
|
||||
/*
|
||||
nec_instruction = new nec_delegate[]{
|
||||
i_add_br8,
|
||||
i_add_wr16,
|
||||
@ -1059,6 +1063,9 @@ namespace cpu.nec
|
||||
i_fepre,
|
||||
i_ffpre
|
||||
};
|
||||
*/
|
||||
|
||||
/*
|
||||
GetEA = new getea_delegate[192]{
|
||||
EA_000, EA_001, EA_002, EA_003, EA_004, EA_005, EA_006, EA_007,
|
||||
EA_000, EA_001, EA_002, EA_003, EA_004, EA_005, EA_006, EA_007,
|
||||
@ -1087,17 +1094,26 @@ namespace cpu.nec
|
||||
EA_200, EA_201, EA_202, EA_203, EA_204, EA_205, EA_206, EA_207,
|
||||
EA_200, EA_201, EA_202, EA_203, EA_204, EA_205, EA_206, EA_207
|
||||
};
|
||||
*/
|
||||
}
|
||||
public override void Reset()
|
||||
{
|
||||
nec_reset();
|
||||
}
|
||||
|
||||
static int[] nec_reset_reg_name = new int[8] { 0, 2, 4, 6, 1, 3, 5, 7 };
|
||||
public void nec_reset()
|
||||
{
|
||||
//const nec_config *config;
|
||||
uint i, j, c;
|
||||
//BREGS[] reg_name = new BREGS[8] { BREGS.AL, BREGS.CL, BREGS.DL, BREGS.BL, BREGS.AH, BREGS.CH, BREGS.DH, BREGS.BH };
|
||||
int[] reg_name = new int[8] { 0, 2, 4, 6, 1, 3, 5, 7 };
|
||||
|
||||
|
||||
//静态化减少GC
|
||||
//int[] reg_name = new int[8] { 0, 2, 4, 6, 1, 3, 5, 7 };
|
||||
|
||||
|
||||
|
||||
//int (*save_irqcallback)(int);
|
||||
//memory_interface save_mem;
|
||||
//save_irqcallback = I.irq_callback;
|
||||
@ -1145,13 +1161,13 @@ namespace cpu.nec
|
||||
I.MF = true;
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
mod_RM.regb[i] = reg_name[(i & 0x38) >> 3];
|
||||
mod_RM.regb[i] = nec_reset_reg_name[(i & 0x38) >> 3];
|
||||
mod_RM.regw[i] = (int)((i & 0x38) >> 3);
|
||||
}
|
||||
for (i = 0xc0; i < 0x100; i++)
|
||||
{
|
||||
mod_RM.RMw[i] = (int)(i & 7);
|
||||
mod_RM.RMb[i] = reg_name[i & 7];
|
||||
mod_RM.RMb[i] = nec_reset_reg_name[i & 7];
|
||||
}
|
||||
I.poll_state = true;
|
||||
}
|
||||
@ -1180,7 +1196,8 @@ namespace cpu.nec
|
||||
}
|
||||
public void nec_trap()
|
||||
{
|
||||
nec_instruction[fetchop()]();
|
||||
//nec_instruction[fetchop()]();
|
||||
DoInstructionOpCode(fetchop());
|
||||
nec_interrupt(1, false);
|
||||
}
|
||||
public void external_int()
|
||||
@ -1289,7 +1306,8 @@ namespace cpu.nec
|
||||
I.no_interrupt--;
|
||||
}
|
||||
iNOP = fetchop();
|
||||
nec_instruction[iNOP]();
|
||||
//nec_instruction[iNOP]();
|
||||
DoInstructionOpCode(iNOP);
|
||||
int delta = prevCycles - pendingCycles;
|
||||
totalExecutedCycles += (ulong)delta;
|
||||
}
|
||||
@ -1329,7 +1347,8 @@ namespace cpu.nec
|
||||
I.no_interrupt--;
|
||||
}
|
||||
iNOP = fetchop();
|
||||
nec_instruction[iNOP]();
|
||||
//nec_instruction[iNOP]();
|
||||
DoInstructionOpCode(iNOP);
|
||||
int delta = prevCycles - pendingCycles;
|
||||
totalExecutedCycles += (ulong)delta;
|
||||
}
|
||||
|
||||
@ -372,7 +372,8 @@
|
||||
seg_prefix = 1;
|
||||
prefix_base = I.sregs[0] << 4;
|
||||
CLK(2);
|
||||
nec_instruction[fetchop()]();
|
||||
//nec_instruction[fetchop()]();
|
||||
DoInstructionOpCode(fetchop());
|
||||
seg_prefix = 0;
|
||||
}
|
||||
void i_daa()
|
||||
@ -441,7 +442,8 @@
|
||||
seg_prefix = 1;
|
||||
prefix_base = I.sregs[1] << 4;
|
||||
CLK(2);
|
||||
nec_instruction[fetchop()]();
|
||||
//nec_instruction[fetchop()]();
|
||||
DoInstructionOpCode(fetchop());
|
||||
seg_prefix = 0;
|
||||
}
|
||||
void i_das()
|
||||
@ -510,7 +512,8 @@
|
||||
seg_prefix = 1;
|
||||
prefix_base = I.sregs[2] << 4;
|
||||
CLK(2);
|
||||
nec_instruction[fetchop()]();
|
||||
//nec_instruction[fetchop()]();
|
||||
DoInstructionOpCode(fetchop());
|
||||
seg_prefix = 0;
|
||||
}
|
||||
void i_aaa()
|
||||
@ -569,7 +572,8 @@
|
||||
seg_prefix = 1;
|
||||
prefix_base = I.sregs[3] << 4;
|
||||
CLK(2);
|
||||
nec_instruction[fetchop()]();
|
||||
//nec_instruction[fetchop()]();
|
||||
DoInstructionOpCode(fetchop());
|
||||
seg_prefix = 0;
|
||||
}
|
||||
void i_aas()
|
||||
@ -839,7 +843,10 @@
|
||||
case 0xad: CLK(2); if (c != 0) do { i_lodsw(); c--; } while (c > 0 && !CF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xae: CLK(2); if (c != 0) do { i_scasb(); c--; } while (c > 0 && !CF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xaf: CLK(2); if (c != 0) do { i_scasw(); c--; } while (c > 0 && !CF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
default: nec_instruction[next](); break;
|
||||
default:
|
||||
//nec_instruction[next]();
|
||||
DoInstructionOpCode(next);
|
||||
break;
|
||||
}
|
||||
seg_prefix = 0;
|
||||
}
|
||||
@ -870,7 +877,10 @@
|
||||
case 0xad: CLK(2); if (c != 0) do { i_lodsw(); c--; } while (c > 0 && CF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xae: CLK(2); if (c != 0) do { i_scasb(); c--; } while (c > 0 && CF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xaf: CLK(2); if (c != 0) do { i_scasw(); c--; } while (c > 0 && CF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
default: nec_instruction[next](); break;
|
||||
default:
|
||||
//nec_instruction[next]();
|
||||
DoInstructionOpCode(next);
|
||||
break;
|
||||
}
|
||||
seg_prefix = 0;
|
||||
}
|
||||
@ -1315,7 +1325,10 @@
|
||||
void i_lea()
|
||||
{
|
||||
int ModRM = FETCH();
|
||||
GetEA[ModRM]();
|
||||
//GetEA[ModRM]();
|
||||
DoNecGetEAOpCode(ModRM);
|
||||
|
||||
|
||||
//I.regs.w[mod_RM.regw[ModRM]] = EO;
|
||||
I.regs.b[mod_RM.regw[ModRM] * 2] = (byte)(EO % 0x100);
|
||||
I.regs.b[mod_RM.regw[ModRM] * 2 + 1] = (byte)(EO / 0x100);
|
||||
@ -2203,7 +2216,10 @@
|
||||
case 0xad: CLK(2); if (c != 0) do { i_lodsw(); c--; } while (c > 0); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xae: CLK(2); if (c != 0) do { i_scasb(); c--; } while (c > 0 && ZF() == false); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xaf: CLK(2); if (c != 0) do { i_scasw(); c--; } while (c > 0 && ZF() == false); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
default: nec_instruction[next](); break;
|
||||
default:
|
||||
//nec_instruction[next]();
|
||||
DoInstructionOpCode(next);
|
||||
break;
|
||||
}
|
||||
seg_prefix = 0;
|
||||
}
|
||||
@ -2234,7 +2250,10 @@
|
||||
case 0xad: CLK(2); if (c != 0) do { i_lodsw(); c--; } while (c > 0); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xae: CLK(2); if (c != 0) do { i_scasb(); c--; } while (c > 0 && ZF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
case 0xaf: CLK(2); if (c != 0) do { i_scasw(); c--; } while (c > 0 && ZF()); I.regs.b[2] = (byte)(c % 0x100); I.regs.b[3] = (byte)(c / 0x100); break;
|
||||
default: nec_instruction[next](); break;
|
||||
default:
|
||||
//nec_instruction[next]();
|
||||
DoInstructionOpCode(next);
|
||||
break;
|
||||
}
|
||||
seg_prefix = 0;
|
||||
}
|
||||
@ -2419,8 +2438,21 @@
|
||||
tmp = GetRMByte(ModRM);
|
||||
switch (ModRM & 0x38)
|
||||
{
|
||||
case 0x00: tmp1 = (byte)(tmp + 1); I.OverVal = (uint)((tmp == 0x7f) ? 1 : 0); SetAF(tmp1, tmp, 1); SetSZPF_Byte(tmp1); PutbackRMByte(ModRM, (byte)tmp1); CLKM(ModRM, 2, 2, 2, 16, 16, 7); break;
|
||||
case 0x08: tmp1 = (byte)(tmp - 1); I.OverVal = (uint)((tmp == 0x80) ? 1 : 0); SetAF(tmp1, tmp, 1); SetSZPF_Byte(tmp1); PutbackRMByte(ModRM, (byte)tmp1); CLKM(ModRM, 2, 2, 2, 16, 16, 7); break;
|
||||
case 0x00:
|
||||
tmp1 = (byte)(tmp + 1);
|
||||
I.OverVal = (uint)((tmp == 0x7f) ? 1 : 0);
|
||||
SetAF(tmp1, tmp, 1);
|
||||
SetSZPF_Byte(tmp1);
|
||||
PutbackRMByte(ModRM, (byte)tmp1);
|
||||
CLKM(ModRM, 2, 2, 2, 16, 16, 7);
|
||||
break;
|
||||
case 0x08:
|
||||
tmp1 = (byte)(tmp - 1);
|
||||
I.OverVal = (uint)((tmp == 0x80) ? 1 : 0);
|
||||
SetAF(tmp1, tmp, 1); SetSZPF_Byte(tmp1);
|
||||
PutbackRMByte(ModRM, (byte)tmp1);
|
||||
CLKM(ModRM, 2, 2, 2, 16, 16, 7);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,11 @@
|
||||
}
|
||||
ushort GetRMWord(int ModRM)
|
||||
{
|
||||
return (ushort)(ModRM >= 0xc0 ? I.regs.b[mod_RM.RMw[ModRM] * 2] + I.regs.b[mod_RM.RMw[ModRM] * 2 + 1] * 0x100 : ReadWord(GetEA[ModRM]()));
|
||||
return (ushort)(ModRM >= 0xc0 ? I.regs.b[mod_RM.RMw[ModRM] * 2] + I.regs.b[mod_RM.RMw[ModRM] * 2 + 1] * 0x100 :
|
||||
ReadWord(
|
||||
//GetEA[ModRM]()
|
||||
DoNecGetEAOpCode(ModRM)
|
||||
));
|
||||
}
|
||||
void PutbackRMWord(int ModRM, ushort val)
|
||||
{
|
||||
@ -41,7 +45,10 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteWord(GetEA[ModRM](), val);
|
||||
WriteWord(
|
||||
//GetEA[ModRM]()
|
||||
DoNecGetEAOpCode(ModRM)
|
||||
, val);
|
||||
}
|
||||
}
|
||||
void PutImmRMWord(int ModRM)
|
||||
@ -56,14 +63,18 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
EA = GetEA[ModRM]();
|
||||
//EA = GetEA[ModRM]();
|
||||
EA = DoNecGetEAOpCode(ModRM);
|
||||
val = FETCHWORD();
|
||||
WriteWord(EA, val);
|
||||
}
|
||||
}
|
||||
byte GetRMByte(int ModRM)
|
||||
{
|
||||
return ((ModRM) >= 0xc0 ? I.regs.b[mod_RM.RMb[ModRM]] : ReadByte(GetEA[ModRM]()));
|
||||
return ((ModRM) >= 0xc0 ? I.regs.b[mod_RM.RMb[ModRM]] : ReadByte(
|
||||
//GetEA[ModRM]()
|
||||
DoNecGetEAOpCode(ModRM)
|
||||
));
|
||||
}
|
||||
void PutRMByte(int ModRM, byte val)
|
||||
{
|
||||
@ -73,7 +84,10 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteByte(GetEA[ModRM](), val);
|
||||
WriteByte(
|
||||
//GetEA[ModRM]()
|
||||
DoNecGetEAOpCode(ModRM)
|
||||
, val);
|
||||
}
|
||||
}
|
||||
void PutImmRMByte(int ModRM)
|
||||
@ -84,7 +98,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
EA = GetEA[ModRM]();
|
||||
//EA = GetEA[ModRM]();
|
||||
EA = DoNecGetEAOpCode(ModRM);
|
||||
WriteByte(EA, FETCH());
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
namespace cpu.nec
|
||||
{
|
||||
public partial class Nec
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 重写的Nec GetEAOpCode指令调度
|
||||
/// </summary>
|
||||
/// <param name="op"></param>
|
||||
public int DoNecGetEAOpCode(int op)
|
||||
{
|
||||
NecGetEAOpCode opType = NecGetEAOpCodeArr[op];
|
||||
switch (opType)
|
||||
{
|
||||
case NecGetEAOpCode.EA_000: return EA_000();
|
||||
case NecGetEAOpCode.EA_001: return EA_001();
|
||||
case NecGetEAOpCode.EA_002: return EA_002();
|
||||
case NecGetEAOpCode.EA_003: return EA_003();
|
||||
case NecGetEAOpCode.EA_004: return EA_004();
|
||||
case NecGetEAOpCode.EA_005: return EA_005();
|
||||
case NecGetEAOpCode.EA_006: return EA_006();
|
||||
case NecGetEAOpCode.EA_007: return EA_007();
|
||||
case NecGetEAOpCode.EA_100: return EA_100();
|
||||
case NecGetEAOpCode.EA_101: return EA_101();
|
||||
case NecGetEAOpCode.EA_102: return EA_102();
|
||||
case NecGetEAOpCode.EA_103: return EA_103();
|
||||
case NecGetEAOpCode.EA_104: return EA_104();
|
||||
case NecGetEAOpCode.EA_105: return EA_105();
|
||||
case NecGetEAOpCode.EA_106: return EA_106();
|
||||
case NecGetEAOpCode.EA_107: return EA_107();
|
||||
case NecGetEAOpCode.EA_200: return EA_200();
|
||||
case NecGetEAOpCode.EA_201: return EA_201();
|
||||
case NecGetEAOpCode.EA_202: return EA_202();
|
||||
case NecGetEAOpCode.EA_203: return EA_203();
|
||||
case NecGetEAOpCode.EA_204: return EA_204();
|
||||
case NecGetEAOpCode.EA_205: return EA_205();
|
||||
case NecGetEAOpCode.EA_206: return EA_206();
|
||||
case NecGetEAOpCode.EA_207: return EA_207();
|
||||
default:
|
||||
throw new System.Exception("NecGetEAOpCode Err");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 595009a52b5a796458afde459dc08caa
|
||||
@ -0,0 +1,233 @@
|
||||
namespace cpu.nec
|
||||
{
|
||||
partial class Nec
|
||||
{
|
||||
/// <summary>
|
||||
/// 自定义Nec GetEA 指令集枚举
|
||||
/// </summary>
|
||||
public enum NecGetEAOpCode : byte
|
||||
{
|
||||
EA_000,
|
||||
EA_001,
|
||||
EA_002,
|
||||
EA_003,
|
||||
EA_004,
|
||||
EA_005,
|
||||
EA_006,
|
||||
EA_007,
|
||||
EA_100,
|
||||
EA_101,
|
||||
EA_102,
|
||||
EA_103,
|
||||
EA_104,
|
||||
EA_105,
|
||||
EA_106,
|
||||
EA_107,
|
||||
EA_200,
|
||||
EA_201,
|
||||
EA_202,
|
||||
EA_203,
|
||||
EA_204,
|
||||
EA_205,
|
||||
EA_206,
|
||||
EA_207
|
||||
}
|
||||
|
||||
|
||||
static readonly NecGetEAOpCode[] NecGetEAOpCodeArr = new NecGetEAOpCode[]
|
||||
{
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_000,
|
||||
NecGetEAOpCode.EA_001,
|
||||
NecGetEAOpCode.EA_002,
|
||||
NecGetEAOpCode.EA_003,
|
||||
NecGetEAOpCode.EA_004,
|
||||
NecGetEAOpCode.EA_005,
|
||||
NecGetEAOpCode.EA_006,
|
||||
NecGetEAOpCode.EA_007,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_100,
|
||||
NecGetEAOpCode.EA_101,
|
||||
NecGetEAOpCode.EA_102,
|
||||
NecGetEAOpCode.EA_103,
|
||||
NecGetEAOpCode.EA_104,
|
||||
NecGetEAOpCode.EA_105,
|
||||
NecGetEAOpCode.EA_106,
|
||||
NecGetEAOpCode.EA_107,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207,
|
||||
NecGetEAOpCode.EA_200,
|
||||
NecGetEAOpCode.EA_201,
|
||||
NecGetEAOpCode.EA_202,
|
||||
NecGetEAOpCode.EA_203,
|
||||
NecGetEAOpCode.EA_204,
|
||||
NecGetEAOpCode.EA_205,
|
||||
NecGetEAOpCode.EA_206,
|
||||
NecGetEAOpCode.EA_207
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 161d73b6e60175c40ad7b8a82e5def6a
|
||||
@ -0,0 +1,265 @@
|
||||
namespace cpu.nec
|
||||
{
|
||||
public partial class Nec
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 重写的Nec Instruction指令调度
|
||||
/// </summary>
|
||||
/// <param name="op"></param>
|
||||
public void DoInstructionOpCode(int op)
|
||||
{
|
||||
NecInstructionOpCode opType = NecInstructionOpCodeArr[op];
|
||||
switch (opType)
|
||||
{
|
||||
case NecInstructionOpCode.i_add_br8: i_add_br8(); return;
|
||||
case NecInstructionOpCode.i_add_wr16: i_add_wr16(); return;
|
||||
case NecInstructionOpCode.i_add_r8b: i_add_r8b(); return;
|
||||
case NecInstructionOpCode.i_add_r16w: i_add_r16w(); return;
|
||||
case NecInstructionOpCode.i_add_ald8: i_add_ald8(); return;
|
||||
case NecInstructionOpCode.i_add_axd16: i_add_axd16(); return;
|
||||
case NecInstructionOpCode.i_push_es: i_push_es(); return;
|
||||
case NecInstructionOpCode.i_pop_es: i_pop_es(); return;
|
||||
case NecInstructionOpCode.i_or_br8: i_or_br8(); return;
|
||||
case NecInstructionOpCode.i_or_wr16: i_or_wr16(); return;
|
||||
case NecInstructionOpCode.i_or_r8b: i_or_r8b(); return;
|
||||
case NecInstructionOpCode.i_or_r16w: i_or_r16w(); return;
|
||||
case NecInstructionOpCode.i_or_ald8: i_or_ald8(); return;
|
||||
case NecInstructionOpCode.i_or_axd16: i_or_axd16(); return;
|
||||
case NecInstructionOpCode.i_push_cs: i_push_cs(); return;
|
||||
case NecInstructionOpCode.i_pre_nec: i_pre_nec(); return;
|
||||
case NecInstructionOpCode.i_adc_br8: i_adc_br8(); return;
|
||||
case NecInstructionOpCode.i_adc_wr16: i_adc_wr16(); return;
|
||||
case NecInstructionOpCode.i_adc_r8b: i_adc_r8b(); return;
|
||||
case NecInstructionOpCode.i_adc_r16w: i_adc_r16w(); return;
|
||||
case NecInstructionOpCode.i_adc_ald8: i_adc_ald8(); return;
|
||||
case NecInstructionOpCode.i_adc_axd16: i_adc_axd16(); return;
|
||||
case NecInstructionOpCode.i_push_ss: i_push_ss(); return;
|
||||
case NecInstructionOpCode.i_pop_ss: i_pop_ss(); return;
|
||||
case NecInstructionOpCode.i_sbb_br8: i_sbb_br8(); return;
|
||||
case NecInstructionOpCode.i_sbb_wr16: i_sbb_wr16(); return;
|
||||
case NecInstructionOpCode.i_sbb_r8b: i_sbb_r8b(); return;
|
||||
case NecInstructionOpCode.i_sbb_r16w: i_sbb_r16w(); return;
|
||||
case NecInstructionOpCode.i_sbb_ald8: i_sbb_ald8(); return;
|
||||
case NecInstructionOpCode.i_sbb_axd16: i_sbb_axd16(); return;
|
||||
case NecInstructionOpCode.i_push_ds: i_push_ds(); return;
|
||||
case NecInstructionOpCode.i_pop_ds: i_pop_ds(); return;
|
||||
case NecInstructionOpCode.i_and_br8: i_and_br8(); return;
|
||||
case NecInstructionOpCode.i_and_wr16: i_and_wr16(); return;
|
||||
case NecInstructionOpCode.i_and_r8b: i_and_r8b(); return;
|
||||
case NecInstructionOpCode.i_and_r16w: i_and_r16w(); return;
|
||||
case NecInstructionOpCode.i_and_ald8: i_and_ald8(); return;
|
||||
case NecInstructionOpCode.i_and_axd16: i_and_axd16(); return;
|
||||
case NecInstructionOpCode.i_es: i_es(); return;
|
||||
case NecInstructionOpCode.i_daa: i_daa(); return;
|
||||
case NecInstructionOpCode.i_sub_br8: i_sub_br8(); return;
|
||||
case NecInstructionOpCode.i_sub_wr16: i_sub_wr16(); return;
|
||||
case NecInstructionOpCode.i_sub_r8b: i_sub_r8b(); return;
|
||||
case NecInstructionOpCode.i_sub_r16w: i_sub_r16w(); return;
|
||||
case NecInstructionOpCode.i_sub_ald8: i_sub_ald8(); return;
|
||||
case NecInstructionOpCode.i_sub_axd16: i_sub_axd16(); return;
|
||||
case NecInstructionOpCode.i_cs: i_cs(); return;
|
||||
case NecInstructionOpCode.i_das: i_das(); return;
|
||||
case NecInstructionOpCode.i_xor_br8: i_xor_br8(); return;
|
||||
case NecInstructionOpCode.i_xor_wr16: i_xor_wr16(); return;
|
||||
case NecInstructionOpCode.i_xor_r8b: i_xor_r8b(); return;
|
||||
case NecInstructionOpCode.i_xor_r16w: i_xor_r16w(); return;
|
||||
case NecInstructionOpCode.i_xor_ald8: i_xor_ald8(); return;
|
||||
case NecInstructionOpCode.i_xor_axd16: i_xor_axd16(); return;
|
||||
case NecInstructionOpCode.i_ss: i_ss(); return;
|
||||
case NecInstructionOpCode.i_aaa: i_aaa(); return;
|
||||
case NecInstructionOpCode.i_cmp_br8: i_cmp_br8(); return;
|
||||
case NecInstructionOpCode.i_cmp_wr16: i_cmp_wr16(); return;
|
||||
case NecInstructionOpCode.i_cmp_r8b: i_cmp_r8b(); return;
|
||||
case NecInstructionOpCode.i_cmp_r16w: i_cmp_r16w(); return;
|
||||
case NecInstructionOpCode.i_cmp_ald8: i_cmp_ald8(); return;
|
||||
case NecInstructionOpCode.i_cmp_axd16: i_cmp_axd16(); return;
|
||||
case NecInstructionOpCode.i_ds: i_ds(); return;
|
||||
case NecInstructionOpCode.i_aas: i_aas(); return;
|
||||
case NecInstructionOpCode.i_inc_ax: i_inc_ax(); return;
|
||||
case NecInstructionOpCode.i_inc_cx: i_inc_cx(); return;
|
||||
case NecInstructionOpCode.i_inc_dx: i_inc_dx(); return;
|
||||
case NecInstructionOpCode.i_inc_bx: i_inc_bx(); return;
|
||||
case NecInstructionOpCode.i_inc_sp: i_inc_sp(); return;
|
||||
case NecInstructionOpCode.i_inc_bp: i_inc_bp(); return;
|
||||
case NecInstructionOpCode.i_inc_si: i_inc_si(); return;
|
||||
case NecInstructionOpCode.i_inc_di: i_inc_di(); return;
|
||||
case NecInstructionOpCode.i_dec_ax: i_dec_ax(); return;
|
||||
case NecInstructionOpCode.i_dec_cx: i_dec_cx(); return;
|
||||
case NecInstructionOpCode.i_dec_dx: i_dec_dx(); return;
|
||||
case NecInstructionOpCode.i_dec_bx: i_dec_bx(); return;
|
||||
case NecInstructionOpCode.i_dec_sp: i_dec_sp(); return;
|
||||
case NecInstructionOpCode.i_dec_bp: i_dec_bp(); return;
|
||||
case NecInstructionOpCode.i_dec_si: i_dec_si(); return;
|
||||
case NecInstructionOpCode.i_dec_di: i_dec_di(); return;
|
||||
case NecInstructionOpCode.i_push_ax: i_push_ax(); return;
|
||||
case NecInstructionOpCode.i_push_cx: i_push_cx(); return;
|
||||
case NecInstructionOpCode.i_push_dx: i_push_dx(); return;
|
||||
case NecInstructionOpCode.i_push_bx: i_push_bx(); return;
|
||||
case NecInstructionOpCode.i_push_sp: i_push_sp(); return;
|
||||
case NecInstructionOpCode.i_push_bp: i_push_bp(); return;
|
||||
case NecInstructionOpCode.i_push_si: i_push_si(); return;
|
||||
case NecInstructionOpCode.i_push_di: i_push_di(); return;
|
||||
case NecInstructionOpCode.i_pop_ax: i_pop_ax(); return;
|
||||
case NecInstructionOpCode.i_pop_cx: i_pop_cx(); return;
|
||||
case NecInstructionOpCode.i_pop_dx: i_pop_dx(); return;
|
||||
case NecInstructionOpCode.i_pop_bx: i_pop_bx(); return;
|
||||
case NecInstructionOpCode.i_pop_sp: i_pop_sp(); return;
|
||||
case NecInstructionOpCode.i_pop_bp: i_pop_bp(); return;
|
||||
case NecInstructionOpCode.i_pop_si: i_pop_si(); return;
|
||||
case NecInstructionOpCode.i_pop_di: i_pop_di(); return;
|
||||
case NecInstructionOpCode.i_pusha: i_pusha(); return;
|
||||
case NecInstructionOpCode.i_popa: i_popa(); return;
|
||||
case NecInstructionOpCode.i_chkind: i_chkind(); return;
|
||||
case NecInstructionOpCode.i_brkn: i_brkn(); return;
|
||||
case NecInstructionOpCode.i_repnc: i_repnc(); return;
|
||||
case NecInstructionOpCode.i_repc: i_repc(); return;
|
||||
case NecInstructionOpCode.i_invalid: i_invalid(); return;
|
||||
case NecInstructionOpCode.i_push_d16: i_push_d16(); return;
|
||||
case NecInstructionOpCode.i_imul_d16: i_imul_d16(); return;
|
||||
case NecInstructionOpCode.i_push_d8: i_push_d8(); return;
|
||||
case NecInstructionOpCode.i_imul_d8: i_imul_d8(); return;
|
||||
case NecInstructionOpCode.i_insb: i_insb(); return;
|
||||
case NecInstructionOpCode.i_insw: i_insw(); return;
|
||||
case NecInstructionOpCode.i_outsb: i_outsb(); return;
|
||||
case NecInstructionOpCode.i_outsw: i_outsw(); return;
|
||||
case NecInstructionOpCode.i_jo: i_jo(); return;
|
||||
case NecInstructionOpCode.i_jno: i_jno(); return;
|
||||
case NecInstructionOpCode.i_jc: i_jc(); return;
|
||||
case NecInstructionOpCode.i_jnc: i_jnc(); return;
|
||||
case NecInstructionOpCode.i_jz: i_jz(); return;
|
||||
case NecInstructionOpCode.i_jnz: i_jnz(); return;
|
||||
case NecInstructionOpCode.i_jce: i_jce(); return;
|
||||
case NecInstructionOpCode.i_jnce: i_jnce(); return;
|
||||
case NecInstructionOpCode.i_js: i_js(); return;
|
||||
case NecInstructionOpCode.i_jns: i_jns(); return;
|
||||
case NecInstructionOpCode.i_jp: i_jp(); return;
|
||||
case NecInstructionOpCode.i_jnp: i_jnp(); return;
|
||||
case NecInstructionOpCode.i_jl: i_jl(); return;
|
||||
case NecInstructionOpCode.i_jnl: i_jnl(); return;
|
||||
case NecInstructionOpCode.i_jle: i_jle(); return;
|
||||
case NecInstructionOpCode.i_jnle: i_jnle(); return;
|
||||
case NecInstructionOpCode.i_80pre: i_80pre(); return;
|
||||
case NecInstructionOpCode.i_81pre: i_81pre(); return;
|
||||
case NecInstructionOpCode.i_82pre: i_82pre(); return;
|
||||
case NecInstructionOpCode.i_83pre: i_83pre(); return;
|
||||
case NecInstructionOpCode.i_test_br8: i_test_br8(); return;
|
||||
case NecInstructionOpCode.i_test_wr16: i_test_wr16(); return;
|
||||
case NecInstructionOpCode.i_xchg_br8: i_xchg_br8(); return;
|
||||
case NecInstructionOpCode.i_xchg_wr16: i_xchg_wr16(); return;
|
||||
case NecInstructionOpCode.i_mov_br8: i_mov_br8(); return;
|
||||
case NecInstructionOpCode.i_mov_wr16: i_mov_wr16(); return;
|
||||
case NecInstructionOpCode.i_mov_r8b: i_mov_r8b(); return;
|
||||
case NecInstructionOpCode.i_mov_r16w: i_mov_r16w(); return;
|
||||
case NecInstructionOpCode.i_mov_wsreg: i_mov_wsreg(); return;
|
||||
case NecInstructionOpCode.i_lea: i_lea(); return;
|
||||
case NecInstructionOpCode.i_mov_sregw: i_mov_sregw(); return;
|
||||
case NecInstructionOpCode.i_popw: i_popw(); return;
|
||||
case NecInstructionOpCode.i_nop: i_nop(); return;
|
||||
case NecInstructionOpCode.i_xchg_axcx: i_xchg_axcx(); return;
|
||||
case NecInstructionOpCode.i_xchg_axdx: i_xchg_axdx(); return;
|
||||
case NecInstructionOpCode.i_xchg_axbx: i_xchg_axbx(); return;
|
||||
case NecInstructionOpCode.i_xchg_axsp: i_xchg_axsp(); return;
|
||||
case NecInstructionOpCode.i_xchg_axbp: i_xchg_axbp(); return;
|
||||
case NecInstructionOpCode.i_xchg_axsi: i_xchg_axsi(); return;
|
||||
case NecInstructionOpCode.i_xchg_axdi: i_xchg_axdi(); return;
|
||||
case NecInstructionOpCode.i_cbw: i_cbw(); return;
|
||||
case NecInstructionOpCode.i_cwd: i_cwd(); return;
|
||||
case NecInstructionOpCode.i_call_far: i_call_far(); return;
|
||||
case NecInstructionOpCode.i_wait: i_wait(); return;
|
||||
case NecInstructionOpCode.i_pushf: i_pushf(); return;
|
||||
case NecInstructionOpCode.i_popf: i_popf(); return;
|
||||
case NecInstructionOpCode.i_sahf: i_sahf(); return;
|
||||
case NecInstructionOpCode.i_lahf: i_lahf(); return;
|
||||
case NecInstructionOpCode.i_mov_aldisp: i_mov_aldisp(); return;
|
||||
case NecInstructionOpCode.i_mov_axdisp: i_mov_axdisp(); return;
|
||||
case NecInstructionOpCode.i_mov_dispal: i_mov_dispal(); return;
|
||||
case NecInstructionOpCode.i_mov_dispax: i_mov_dispax(); return;
|
||||
case NecInstructionOpCode.i_movsb: i_movsb(); return;
|
||||
case NecInstructionOpCode.i_movsw: i_movsw(); return;
|
||||
case NecInstructionOpCode.i_cmpsb: i_cmpsb(); return;
|
||||
case NecInstructionOpCode.i_cmpsw: i_cmpsw(); return;
|
||||
case NecInstructionOpCode.i_test_ald8: i_test_ald8(); return;
|
||||
case NecInstructionOpCode.i_test_axd16: i_test_axd16(); return;
|
||||
case NecInstructionOpCode.i_stosb: i_stosb(); return;
|
||||
case NecInstructionOpCode.i_stosw: i_stosw(); return;
|
||||
case NecInstructionOpCode.i_lodsb: i_lodsb(); return;
|
||||
case NecInstructionOpCode.i_lodsw: i_lodsw(); return;
|
||||
case NecInstructionOpCode.i_scasb: i_scasb(); return;
|
||||
case NecInstructionOpCode.i_scasw: i_scasw(); return;
|
||||
case NecInstructionOpCode.i_mov_ald8: i_mov_ald8(); return;
|
||||
case NecInstructionOpCode.i_mov_cld8: i_mov_cld8(); return;
|
||||
case NecInstructionOpCode.i_mov_dld8: i_mov_dld8(); return;
|
||||
case NecInstructionOpCode.i_mov_bld8: i_mov_bld8(); return;
|
||||
case NecInstructionOpCode.i_mov_ahd8: i_mov_ahd8(); return;
|
||||
case NecInstructionOpCode.i_mov_chd8: i_mov_chd8(); return;
|
||||
case NecInstructionOpCode.i_mov_dhd8: i_mov_dhd8(); return;
|
||||
case NecInstructionOpCode.i_mov_bhd8: i_mov_bhd8(); return;
|
||||
case NecInstructionOpCode.i_mov_axd16: i_mov_axd16(); return;
|
||||
case NecInstructionOpCode.i_mov_cxd16: i_mov_cxd16(); return;
|
||||
case NecInstructionOpCode.i_mov_dxd16: i_mov_dxd16(); return;
|
||||
case NecInstructionOpCode.i_mov_bxd16: i_mov_bxd16(); return;
|
||||
case NecInstructionOpCode.i_mov_spd16: i_mov_spd16(); return;
|
||||
case NecInstructionOpCode.i_mov_bpd16: i_mov_bpd16(); return;
|
||||
case NecInstructionOpCode.i_mov_sid16: i_mov_sid16(); return;
|
||||
case NecInstructionOpCode.i_mov_did16: i_mov_did16(); return;
|
||||
case NecInstructionOpCode.i_rotshft_bd8: i_rotshft_bd8(); return;
|
||||
case NecInstructionOpCode.i_rotshft_wd8: i_rotshft_wd8(); return;
|
||||
case NecInstructionOpCode.i_ret_d16: i_ret_d16(); return;
|
||||
case NecInstructionOpCode.i_ret: i_ret(); return;
|
||||
case NecInstructionOpCode.i_les_dw: i_les_dw(); return;
|
||||
case NecInstructionOpCode.i_lds_dw: i_lds_dw(); return;
|
||||
case NecInstructionOpCode.i_mov_bd8: i_mov_bd8(); return;
|
||||
case NecInstructionOpCode.i_mov_wd16: i_mov_wd16(); return;
|
||||
case NecInstructionOpCode.i_enter: i_enter(); return;
|
||||
case NecInstructionOpCode.i_leave: i_leave(); return;
|
||||
case NecInstructionOpCode.i_retf_d16: i_retf_d16(); return;
|
||||
case NecInstructionOpCode.i_retf: i_retf(); return;
|
||||
case NecInstructionOpCode.i_int3: i_int3(); return;
|
||||
case NecInstructionOpCode.i_int: i_int(); return;
|
||||
case NecInstructionOpCode.i_into: i_into(); return;
|
||||
case NecInstructionOpCode.i_iret: i_iret(); return;
|
||||
case NecInstructionOpCode.i_rotshft_b: i_rotshft_b(); return;
|
||||
case NecInstructionOpCode.i_rotshft_w: i_rotshft_w(); return;
|
||||
case NecInstructionOpCode.i_rotshft_bcl: i_rotshft_bcl(); return;
|
||||
case NecInstructionOpCode.i_rotshft_wcl: i_rotshft_wcl(); return;
|
||||
case NecInstructionOpCode.i_aam: i_aam(); return;
|
||||
case NecInstructionOpCode.i_aad: i_aad(); return;
|
||||
case NecInstructionOpCode.i_setalc: i_setalc(); return;
|
||||
case NecInstructionOpCode.i_trans: i_trans(); return;
|
||||
case NecInstructionOpCode.i_fpo: i_fpo(); return;
|
||||
case NecInstructionOpCode.i_loopne: i_loopne(); return;
|
||||
case NecInstructionOpCode.i_loope: i_loope(); return;
|
||||
case NecInstructionOpCode.i_loop: i_loop(); return;
|
||||
case NecInstructionOpCode.i_jcxz: i_jcxz(); return;
|
||||
case NecInstructionOpCode.i_inal: i_inal(); return;
|
||||
case NecInstructionOpCode.i_inax: i_inax(); return;
|
||||
case NecInstructionOpCode.i_outal: i_outal(); return;
|
||||
case NecInstructionOpCode.i_outax: i_outax(); return;
|
||||
case NecInstructionOpCode.i_call_d16: i_call_d16(); return;
|
||||
case NecInstructionOpCode.i_jmp_d16: i_jmp_d16(); return;
|
||||
case NecInstructionOpCode.i_jmp_far: i_jmp_far(); return;
|
||||
case NecInstructionOpCode.i_jmp_d8: i_jmp_d8(); return;
|
||||
case NecInstructionOpCode.i_inaldx: i_inaldx(); return;
|
||||
case NecInstructionOpCode.i_inaxdx: i_inaxdx(); return;
|
||||
case NecInstructionOpCode.i_outdxal: i_outdxal(); return;
|
||||
case NecInstructionOpCode.i_outdxax: i_outdxax(); return;
|
||||
case NecInstructionOpCode.i_lock: i_lock(); return;
|
||||
case NecInstructionOpCode.i_repne: i_repne(); return;
|
||||
case NecInstructionOpCode.i_repe: i_repe(); return;
|
||||
case NecInstructionOpCode.i_hlt: i_hlt(); return;
|
||||
case NecInstructionOpCode.i_cmc: i_cmc(); return;
|
||||
case NecInstructionOpCode.i_f6pre: i_f6pre(); return;
|
||||
case NecInstructionOpCode.i_f7pre: i_f7pre(); return;
|
||||
case NecInstructionOpCode.i_clc: i_clc(); return;
|
||||
case NecInstructionOpCode.i_stc: i_stc(); return;
|
||||
case NecInstructionOpCode.i_di: i_di(); return;
|
||||
case NecInstructionOpCode.i_ei: i_ei(); return;
|
||||
case NecInstructionOpCode.i_cld: i_cld(); return;
|
||||
case NecInstructionOpCode.i_std: i_std(); return;
|
||||
case NecInstructionOpCode.i_fepre: i_fepre(); return;
|
||||
case NecInstructionOpCode.i_ffpre: i_ffpre(); return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f50a2c17a484f2942a22fca915892b5e
|
||||
@ -0,0 +1,520 @@
|
||||
namespace cpu.nec
|
||||
{
|
||||
partial class Nec
|
||||
{
|
||||
/// <summary>
|
||||
/// 自定义Nec指令集枚举
|
||||
/// </summary>
|
||||
public enum NecInstructionOpCode : byte
|
||||
{
|
||||
i_add_br8,
|
||||
i_add_wr16,
|
||||
i_add_r8b,
|
||||
i_add_r16w,
|
||||
i_add_ald8,
|
||||
i_add_axd16,
|
||||
i_push_es,
|
||||
i_pop_es,
|
||||
i_or_br8,
|
||||
i_or_wr16,
|
||||
i_or_r8b,
|
||||
i_or_r16w,
|
||||
i_or_ald8,
|
||||
i_or_axd16,
|
||||
i_push_cs,
|
||||
i_pre_nec,
|
||||
i_adc_br8,
|
||||
i_adc_wr16,
|
||||
i_adc_r8b,
|
||||
i_adc_r16w,
|
||||
i_adc_ald8,
|
||||
i_adc_axd16,
|
||||
i_push_ss,
|
||||
i_pop_ss,
|
||||
i_sbb_br8,
|
||||
i_sbb_wr16,
|
||||
i_sbb_r8b,
|
||||
i_sbb_r16w,
|
||||
i_sbb_ald8,
|
||||
i_sbb_axd16,
|
||||
i_push_ds,
|
||||
i_pop_ds,
|
||||
i_and_br8,
|
||||
i_and_wr16,
|
||||
i_and_r8b,
|
||||
i_and_r16w,
|
||||
i_and_ald8,
|
||||
i_and_axd16,
|
||||
i_es,
|
||||
i_daa,
|
||||
i_sub_br8,
|
||||
i_sub_wr16,
|
||||
i_sub_r8b,
|
||||
i_sub_r16w,
|
||||
i_sub_ald8,
|
||||
i_sub_axd16,
|
||||
i_cs,
|
||||
i_das,
|
||||
i_xor_br8,
|
||||
i_xor_wr16,
|
||||
i_xor_r8b,
|
||||
i_xor_r16w,
|
||||
i_xor_ald8,
|
||||
i_xor_axd16,
|
||||
i_ss,
|
||||
i_aaa,
|
||||
i_cmp_br8,
|
||||
i_cmp_wr16,
|
||||
i_cmp_r8b,
|
||||
i_cmp_r16w,
|
||||
i_cmp_ald8,
|
||||
i_cmp_axd16,
|
||||
i_ds,
|
||||
i_aas,
|
||||
i_inc_ax,
|
||||
i_inc_cx,
|
||||
i_inc_dx,
|
||||
i_inc_bx,
|
||||
i_inc_sp,
|
||||
i_inc_bp,
|
||||
i_inc_si,
|
||||
i_inc_di,
|
||||
i_dec_ax,
|
||||
i_dec_cx,
|
||||
i_dec_dx,
|
||||
i_dec_bx,
|
||||
i_dec_sp,
|
||||
i_dec_bp,
|
||||
i_dec_si,
|
||||
i_dec_di,
|
||||
i_push_ax,
|
||||
i_push_cx,
|
||||
i_push_dx,
|
||||
i_push_bx,
|
||||
i_push_sp,
|
||||
i_push_bp,
|
||||
i_push_si,
|
||||
i_push_di,
|
||||
i_pop_ax,
|
||||
i_pop_cx,
|
||||
i_pop_dx,
|
||||
i_pop_bx,
|
||||
i_pop_sp,
|
||||
i_pop_bp,
|
||||
i_pop_si,
|
||||
i_pop_di,
|
||||
i_pusha,
|
||||
i_popa,
|
||||
i_chkind,
|
||||
i_brkn,
|
||||
i_repnc,
|
||||
i_repc,
|
||||
i_invalid,
|
||||
i_push_d16,
|
||||
i_imul_d16,
|
||||
i_push_d8,
|
||||
i_imul_d8,
|
||||
i_insb,
|
||||
i_insw,
|
||||
i_outsb,
|
||||
i_outsw,
|
||||
i_jo,
|
||||
i_jno,
|
||||
i_jc,
|
||||
i_jnc,
|
||||
i_jz,
|
||||
i_jnz,
|
||||
i_jce,
|
||||
i_jnce,
|
||||
i_js,
|
||||
i_jns,
|
||||
i_jp,
|
||||
i_jnp,
|
||||
i_jl,
|
||||
i_jnl,
|
||||
i_jle,
|
||||
i_jnle,
|
||||
i_80pre,
|
||||
i_81pre,
|
||||
i_82pre,
|
||||
i_83pre,
|
||||
i_test_br8,
|
||||
i_test_wr16,
|
||||
i_xchg_br8,
|
||||
i_xchg_wr16,
|
||||
i_mov_br8,
|
||||
i_mov_wr16,
|
||||
i_mov_r8b,
|
||||
i_mov_r16w,
|
||||
i_mov_wsreg,
|
||||
i_lea,
|
||||
i_mov_sregw,
|
||||
i_popw,
|
||||
i_nop,
|
||||
i_xchg_axcx,
|
||||
i_xchg_axdx,
|
||||
i_xchg_axbx,
|
||||
i_xchg_axsp,
|
||||
i_xchg_axbp,
|
||||
i_xchg_axsi,
|
||||
i_xchg_axdi,
|
||||
i_cbw,
|
||||
i_cwd,
|
||||
i_call_far,
|
||||
i_wait,
|
||||
i_pushf,
|
||||
i_popf,
|
||||
i_sahf,
|
||||
i_lahf,
|
||||
i_mov_aldisp,
|
||||
i_mov_axdisp,
|
||||
i_mov_dispal,
|
||||
i_mov_dispax,
|
||||
i_movsb,
|
||||
i_movsw,
|
||||
i_cmpsb,
|
||||
i_cmpsw,
|
||||
i_test_ald8,
|
||||
i_test_axd16,
|
||||
i_stosb,
|
||||
i_stosw,
|
||||
i_lodsb,
|
||||
i_lodsw,
|
||||
i_scasb,
|
||||
i_scasw,
|
||||
i_mov_ald8,
|
||||
i_mov_cld8,
|
||||
i_mov_dld8,
|
||||
i_mov_bld8,
|
||||
i_mov_ahd8,
|
||||
i_mov_chd8,
|
||||
i_mov_dhd8,
|
||||
i_mov_bhd8,
|
||||
i_mov_axd16,
|
||||
i_mov_cxd16,
|
||||
i_mov_dxd16,
|
||||
i_mov_bxd16,
|
||||
i_mov_spd16,
|
||||
i_mov_bpd16,
|
||||
i_mov_sid16,
|
||||
i_mov_did16,
|
||||
i_rotshft_bd8,
|
||||
i_rotshft_wd8,
|
||||
i_ret_d16,
|
||||
i_ret,
|
||||
i_les_dw,
|
||||
i_lds_dw,
|
||||
i_mov_bd8,
|
||||
i_mov_wd16,
|
||||
i_enter,
|
||||
i_leave,
|
||||
i_retf_d16,
|
||||
i_retf,
|
||||
i_int3,
|
||||
i_int,
|
||||
i_into,
|
||||
i_iret,
|
||||
i_rotshft_b,
|
||||
i_rotshft_w,
|
||||
i_rotshft_bcl,
|
||||
i_rotshft_wcl,
|
||||
i_aam,
|
||||
i_aad,
|
||||
i_setalc,
|
||||
i_trans,
|
||||
i_fpo,
|
||||
i_loopne,
|
||||
i_loope,
|
||||
i_loop,
|
||||
i_jcxz,
|
||||
i_inal,
|
||||
i_inax,
|
||||
i_outal,
|
||||
i_outax,
|
||||
i_call_d16,
|
||||
i_jmp_d16,
|
||||
i_jmp_far,
|
||||
i_jmp_d8,
|
||||
i_inaldx,
|
||||
i_inaxdx,
|
||||
i_outdxal,
|
||||
i_outdxax,
|
||||
i_lock,
|
||||
i_repne,
|
||||
i_repe,
|
||||
i_hlt,
|
||||
i_cmc,
|
||||
i_f6pre,
|
||||
i_f7pre,
|
||||
i_clc,
|
||||
i_stc,
|
||||
i_di,
|
||||
i_ei,
|
||||
i_cld,
|
||||
i_std,
|
||||
i_fepre,
|
||||
i_ffpre
|
||||
}
|
||||
|
||||
|
||||
static readonly NecInstructionOpCode[] NecInstructionOpCodeArr = new NecInstructionOpCode[]
|
||||
{
|
||||
NecInstructionOpCode.i_add_br8,
|
||||
NecInstructionOpCode.i_add_wr16,
|
||||
NecInstructionOpCode.i_add_r8b,
|
||||
NecInstructionOpCode.i_add_r16w,
|
||||
NecInstructionOpCode.i_add_ald8,
|
||||
NecInstructionOpCode.i_add_axd16,
|
||||
NecInstructionOpCode.i_push_es,
|
||||
NecInstructionOpCode.i_pop_es,
|
||||
NecInstructionOpCode.i_or_br8,
|
||||
NecInstructionOpCode.i_or_wr16,
|
||||
NecInstructionOpCode.i_or_r8b,
|
||||
NecInstructionOpCode.i_or_r16w,
|
||||
NecInstructionOpCode.i_or_ald8,
|
||||
NecInstructionOpCode.i_or_axd16,
|
||||
NecInstructionOpCode.i_push_cs,
|
||||
NecInstructionOpCode.i_pre_nec,
|
||||
NecInstructionOpCode.i_adc_br8,
|
||||
NecInstructionOpCode.i_adc_wr16,
|
||||
NecInstructionOpCode.i_adc_r8b,
|
||||
NecInstructionOpCode.i_adc_r16w,
|
||||
NecInstructionOpCode.i_adc_ald8,
|
||||
NecInstructionOpCode.i_adc_axd16,
|
||||
NecInstructionOpCode.i_push_ss,
|
||||
NecInstructionOpCode.i_pop_ss,
|
||||
NecInstructionOpCode.i_sbb_br8,
|
||||
NecInstructionOpCode.i_sbb_wr16,
|
||||
NecInstructionOpCode.i_sbb_r8b,
|
||||
NecInstructionOpCode.i_sbb_r16w,
|
||||
NecInstructionOpCode.i_sbb_ald8,
|
||||
NecInstructionOpCode.i_sbb_axd16,
|
||||
NecInstructionOpCode.i_push_ds,
|
||||
NecInstructionOpCode.i_pop_ds,
|
||||
NecInstructionOpCode.i_and_br8,
|
||||
NecInstructionOpCode.i_and_wr16,
|
||||
NecInstructionOpCode.i_and_r8b,
|
||||
NecInstructionOpCode.i_and_r16w,
|
||||
NecInstructionOpCode.i_and_ald8,
|
||||
NecInstructionOpCode.i_and_axd16,
|
||||
NecInstructionOpCode.i_es,
|
||||
NecInstructionOpCode.i_daa,
|
||||
NecInstructionOpCode.i_sub_br8,
|
||||
NecInstructionOpCode.i_sub_wr16,
|
||||
NecInstructionOpCode.i_sub_r8b,
|
||||
NecInstructionOpCode.i_sub_r16w,
|
||||
NecInstructionOpCode.i_sub_ald8,
|
||||
NecInstructionOpCode.i_sub_axd16,
|
||||
NecInstructionOpCode.i_cs,
|
||||
NecInstructionOpCode.i_das,
|
||||
NecInstructionOpCode.i_xor_br8,
|
||||
NecInstructionOpCode.i_xor_wr16,
|
||||
NecInstructionOpCode.i_xor_r8b,
|
||||
NecInstructionOpCode.i_xor_r16w,
|
||||
NecInstructionOpCode.i_xor_ald8,
|
||||
NecInstructionOpCode.i_xor_axd16,
|
||||
NecInstructionOpCode.i_ss,
|
||||
NecInstructionOpCode.i_aaa,
|
||||
NecInstructionOpCode.i_cmp_br8,
|
||||
NecInstructionOpCode.i_cmp_wr16,
|
||||
NecInstructionOpCode.i_cmp_r8b,
|
||||
NecInstructionOpCode.i_cmp_r16w,
|
||||
NecInstructionOpCode.i_cmp_ald8,
|
||||
NecInstructionOpCode.i_cmp_axd16,
|
||||
NecInstructionOpCode.i_ds,
|
||||
NecInstructionOpCode.i_aas,
|
||||
NecInstructionOpCode.i_inc_ax,
|
||||
NecInstructionOpCode.i_inc_cx,
|
||||
NecInstructionOpCode.i_inc_dx,
|
||||
NecInstructionOpCode.i_inc_bx,
|
||||
NecInstructionOpCode.i_inc_sp,
|
||||
NecInstructionOpCode.i_inc_bp,
|
||||
NecInstructionOpCode.i_inc_si,
|
||||
NecInstructionOpCode.i_inc_di,
|
||||
NecInstructionOpCode.i_dec_ax,
|
||||
NecInstructionOpCode.i_dec_cx,
|
||||
NecInstructionOpCode.i_dec_dx,
|
||||
NecInstructionOpCode.i_dec_bx,
|
||||
NecInstructionOpCode.i_dec_sp,
|
||||
NecInstructionOpCode.i_dec_bp,
|
||||
NecInstructionOpCode.i_dec_si,
|
||||
NecInstructionOpCode.i_dec_di,
|
||||
NecInstructionOpCode.i_push_ax,
|
||||
NecInstructionOpCode.i_push_cx,
|
||||
NecInstructionOpCode.i_push_dx,
|
||||
NecInstructionOpCode.i_push_bx,
|
||||
NecInstructionOpCode.i_push_sp,
|
||||
NecInstructionOpCode.i_push_bp,
|
||||
NecInstructionOpCode.i_push_si,
|
||||
NecInstructionOpCode.i_push_di,
|
||||
NecInstructionOpCode.i_pop_ax,
|
||||
NecInstructionOpCode.i_pop_cx,
|
||||
NecInstructionOpCode.i_pop_dx,
|
||||
NecInstructionOpCode.i_pop_bx,
|
||||
NecInstructionOpCode.i_pop_sp,
|
||||
NecInstructionOpCode.i_pop_bp,
|
||||
NecInstructionOpCode.i_pop_si,
|
||||
NecInstructionOpCode.i_pop_di,
|
||||
NecInstructionOpCode.i_pusha,
|
||||
NecInstructionOpCode.i_popa,
|
||||
NecInstructionOpCode.i_chkind,
|
||||
NecInstructionOpCode.i_brkn,
|
||||
NecInstructionOpCode.i_repnc,
|
||||
NecInstructionOpCode.i_repc,
|
||||
NecInstructionOpCode.i_invalid,
|
||||
NecInstructionOpCode.i_invalid,
|
||||
NecInstructionOpCode.i_push_d16,
|
||||
NecInstructionOpCode.i_imul_d16,
|
||||
NecInstructionOpCode.i_push_d8,
|
||||
NecInstructionOpCode.i_imul_d8,
|
||||
NecInstructionOpCode.i_insb,
|
||||
NecInstructionOpCode.i_insw,
|
||||
NecInstructionOpCode.i_outsb,
|
||||
NecInstructionOpCode.i_outsw,
|
||||
NecInstructionOpCode.i_jo,
|
||||
NecInstructionOpCode.i_jno,
|
||||
NecInstructionOpCode.i_jc,
|
||||
NecInstructionOpCode.i_jnc,
|
||||
NecInstructionOpCode.i_jz,
|
||||
NecInstructionOpCode.i_jnz,
|
||||
NecInstructionOpCode.i_jce,
|
||||
NecInstructionOpCode.i_jnce,
|
||||
NecInstructionOpCode.i_js,
|
||||
NecInstructionOpCode.i_jns,
|
||||
NecInstructionOpCode.i_jp,
|
||||
NecInstructionOpCode.i_jnp,
|
||||
NecInstructionOpCode.i_jl,
|
||||
NecInstructionOpCode.i_jnl,
|
||||
NecInstructionOpCode.i_jle,
|
||||
NecInstructionOpCode.i_jnle,
|
||||
NecInstructionOpCode.i_80pre,
|
||||
NecInstructionOpCode.i_81pre,
|
||||
NecInstructionOpCode.i_82pre,
|
||||
NecInstructionOpCode.i_83pre,
|
||||
NecInstructionOpCode.i_test_br8,
|
||||
NecInstructionOpCode.i_test_wr16,
|
||||
NecInstructionOpCode.i_xchg_br8,
|
||||
NecInstructionOpCode.i_xchg_wr16,
|
||||
NecInstructionOpCode.i_mov_br8,
|
||||
NecInstructionOpCode.i_mov_wr16,
|
||||
NecInstructionOpCode.i_mov_r8b,
|
||||
NecInstructionOpCode.i_mov_r16w,
|
||||
NecInstructionOpCode.i_mov_wsreg,
|
||||
NecInstructionOpCode.i_lea,
|
||||
NecInstructionOpCode.i_mov_sregw,
|
||||
NecInstructionOpCode.i_popw,
|
||||
NecInstructionOpCode.i_nop,
|
||||
NecInstructionOpCode.i_xchg_axcx,
|
||||
NecInstructionOpCode.i_xchg_axdx,
|
||||
NecInstructionOpCode.i_xchg_axbx,
|
||||
NecInstructionOpCode.i_xchg_axsp,
|
||||
NecInstructionOpCode.i_xchg_axbp,
|
||||
NecInstructionOpCode.i_xchg_axsi,
|
||||
NecInstructionOpCode.i_xchg_axdi,
|
||||
NecInstructionOpCode.i_cbw,
|
||||
NecInstructionOpCode.i_cwd,
|
||||
NecInstructionOpCode.i_call_far,
|
||||
NecInstructionOpCode.i_wait,
|
||||
NecInstructionOpCode.i_pushf,
|
||||
NecInstructionOpCode.i_popf,
|
||||
NecInstructionOpCode.i_sahf,
|
||||
NecInstructionOpCode.i_lahf,
|
||||
NecInstructionOpCode.i_mov_aldisp,
|
||||
NecInstructionOpCode.i_mov_axdisp,
|
||||
NecInstructionOpCode.i_mov_dispal,
|
||||
NecInstructionOpCode.i_mov_dispax,
|
||||
NecInstructionOpCode.i_movsb,
|
||||
NecInstructionOpCode.i_movsw,
|
||||
NecInstructionOpCode.i_cmpsb,
|
||||
NecInstructionOpCode.i_cmpsw,
|
||||
NecInstructionOpCode.i_test_ald8,
|
||||
NecInstructionOpCode.i_test_axd16,
|
||||
NecInstructionOpCode.i_stosb,
|
||||
NecInstructionOpCode.i_stosw,
|
||||
NecInstructionOpCode.i_lodsb,
|
||||
NecInstructionOpCode.i_lodsw,
|
||||
NecInstructionOpCode.i_scasb,
|
||||
NecInstructionOpCode.i_scasw,
|
||||
NecInstructionOpCode.i_mov_ald8,
|
||||
NecInstructionOpCode.i_mov_cld8,
|
||||
NecInstructionOpCode.i_mov_dld8,
|
||||
NecInstructionOpCode.i_mov_bld8,
|
||||
NecInstructionOpCode.i_mov_ahd8,
|
||||
NecInstructionOpCode.i_mov_chd8,
|
||||
NecInstructionOpCode.i_mov_dhd8,
|
||||
NecInstructionOpCode.i_mov_bhd8,
|
||||
NecInstructionOpCode.i_mov_axd16,
|
||||
NecInstructionOpCode.i_mov_cxd16,
|
||||
NecInstructionOpCode.i_mov_dxd16,
|
||||
NecInstructionOpCode.i_mov_bxd16,
|
||||
NecInstructionOpCode.i_mov_spd16,
|
||||
NecInstructionOpCode.i_mov_bpd16,
|
||||
NecInstructionOpCode.i_mov_sid16,
|
||||
NecInstructionOpCode.i_mov_did16,
|
||||
NecInstructionOpCode.i_rotshft_bd8,
|
||||
NecInstructionOpCode.i_rotshft_wd8,
|
||||
NecInstructionOpCode.i_ret_d16,
|
||||
NecInstructionOpCode.i_ret,
|
||||
NecInstructionOpCode.i_les_dw,
|
||||
NecInstructionOpCode.i_lds_dw,
|
||||
NecInstructionOpCode.i_mov_bd8,
|
||||
NecInstructionOpCode.i_mov_wd16,
|
||||
NecInstructionOpCode.i_enter,
|
||||
NecInstructionOpCode.i_leave,
|
||||
NecInstructionOpCode.i_retf_d16,
|
||||
NecInstructionOpCode.i_retf,
|
||||
NecInstructionOpCode.i_int3,
|
||||
NecInstructionOpCode.i_int,
|
||||
NecInstructionOpCode.i_into,
|
||||
NecInstructionOpCode.i_iret,
|
||||
NecInstructionOpCode.i_rotshft_b,
|
||||
NecInstructionOpCode.i_rotshft_w,
|
||||
NecInstructionOpCode.i_rotshft_bcl,
|
||||
NecInstructionOpCode.i_rotshft_wcl,
|
||||
NecInstructionOpCode.i_aam,
|
||||
NecInstructionOpCode.i_aad,
|
||||
NecInstructionOpCode.i_setalc,
|
||||
NecInstructionOpCode.i_trans,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_fpo,
|
||||
NecInstructionOpCode.i_loopne,
|
||||
NecInstructionOpCode.i_loope,
|
||||
NecInstructionOpCode.i_loop,
|
||||
NecInstructionOpCode.i_jcxz,
|
||||
NecInstructionOpCode.i_inal,
|
||||
NecInstructionOpCode.i_inax,
|
||||
NecInstructionOpCode.i_outal,
|
||||
NecInstructionOpCode.i_outax,
|
||||
NecInstructionOpCode.i_call_d16,
|
||||
NecInstructionOpCode.i_jmp_d16,
|
||||
NecInstructionOpCode.i_jmp_far,
|
||||
NecInstructionOpCode.i_jmp_d8,
|
||||
NecInstructionOpCode.i_inaldx,
|
||||
NecInstructionOpCode.i_inaxdx,
|
||||
NecInstructionOpCode.i_outdxal,
|
||||
NecInstructionOpCode.i_outdxax,
|
||||
NecInstructionOpCode.i_lock,
|
||||
NecInstructionOpCode.i_invalid,
|
||||
NecInstructionOpCode.i_repne,
|
||||
NecInstructionOpCode.i_repe,
|
||||
NecInstructionOpCode.i_hlt,
|
||||
NecInstructionOpCode.i_cmc,
|
||||
NecInstructionOpCode.i_f6pre,
|
||||
NecInstructionOpCode.i_f7pre,
|
||||
NecInstructionOpCode.i_clc,
|
||||
NecInstructionOpCode.i_stc,
|
||||
NecInstructionOpCode.i_di,
|
||||
NecInstructionOpCode.i_ei,
|
||||
NecInstructionOpCode.i_cld,
|
||||
NecInstructionOpCode.i_std,
|
||||
NecInstructionOpCode.i_fepre,
|
||||
NecInstructionOpCode.i_ffpre
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f41d610c1d67cd745b61dcb36c8b7214
|
||||
Loading…
Reference in New Issue
Block a user