Files
Sun1602/Server/MolaCrypt/WzASM_VM/IWzASM.ASMHandler.cpp
T
2022-10-26 12:25:11 +08:00

6108 lines
119 KiB
C++

#include "stdafx.h"
#include "IWzASM.h"
#include "VMOp/VMOpCPU.h"
struct sMETHOD_REGISTER_HANDLER;
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬
// Àӽà ÄÚµå ¼±¾ð
#undef ADD_IWzASM_HANDLER
#define ADD_IWzASM_HANDLER( codeASM, dataSIZE ) \
WzRET_T HANDLER_WzASM_##codeASM( WzASM_EIP& rEIP, uREG_NODE* pNODE )
//#define CALL_IWzASM_HANDLER( codeASM, dataSIZE ) \
// HANDLER_WzASM_##codeASM( rEIP, pNODE )
ADD_IWzASM_HANDLER( MOV_EAX_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EAX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EAX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EAX_PTR , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.PTR = pNODE->PTR;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBX_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EBX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EBX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EBX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EBX_PTR , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.PTR = pNODE->PTR;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MOV_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = rREGISTER.EBX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = rREGISTER.ECX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = rREGISTER.EDX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX = rREGISTER.EAX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX = rREGISTER.ECX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX = rREGISTER.EDX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX = rREGISTER.EAX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX = rREGISTER.EBX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX = rREGISTER.EDX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EDX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX = rREGISTER.EAX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EDX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX = rREGISTER.EBX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EDX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX = rREGISTER.ECX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = rREGISTER.ERP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX = rREGISTER.ERP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ECX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX = rREGISTER.ERP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EDX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX = rREGISTER.ERP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP = rREGISTER.EAX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP = rREGISTER.EBX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP = rREGISTER.ECX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP = rREGISTER.EDX;
return sRET::SUCCESS;;
}
//////////////////////////////////////////////////////////////////////////
ADD_IWzASM_HANDLER( MOV_EAX0_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_PTR , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].PTR = pNODE->PTR;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_PTR , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].PTR = pNODE->PTR;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_PTR , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].PTR = pNODE->PTR;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_PTR , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].PTR = pNODE->PTR;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA4B1 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BYTE array[4];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
rEAX.EXA[2].EX = array[2];
rEAX.EXA[3].EX = array[3];
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA4B2 , 8 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD array[4];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
rEAX.EXA[2].EX = array[2];
rEAX.EXA[3].EX = array[3];
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA4B4 , 16 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = pNODE->EXA[0].EX;
rEAX.EXA[1].EX = pNODE->EXA[1].EX;
rEAX.EXA[2].EX = pNODE->EXA[2].EX;
rEAX.EXA[3].EX = pNODE->EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA4HS , 8 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD array[4];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
rEAX.EXA[2].EX = array[2];
rEAX.EXA[3].EX = array[3];
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA3B1 , 3 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BYTE array[3];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
rEAX.EXA[2].EX = array[2];
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA3B2 , 6 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD array[3];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
rEAX.EXA[2].EX = array[2];
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA3B4 , 12 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
DWORD array[3];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = pNODE->EXA[0].EX;
rEAX.EXA[1].EX = pNODE->EXA[1].EX;
rEAX.EXA[2].EX = pNODE->EXA[2].EX;
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA3HS , 6 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD array[3];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
rEAX.EXA[2].EX = array[2];
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA2B1 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BYTE array[2];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
//rEAX.EXA[2].EX = 0;
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA2B2 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD array[2];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
//rEAX.EXA[2].EX = 0;
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA2B4 , 8 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
DWORD array[2];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = pNODE->EXA[0].EX;
rEAX.EXA[1].EX = pNODE->EXA[1].EX;
//rEAX.EXA[2].EX = 0;
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EXA2HS , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD array[2];
CopyMemory( array, pNODE, sizeof(array) );
uREG_NODE& rEAX = rREGISTER.EAX;
rEAX.EXA[0].EX = array[0];
rEAX.EXA[1].EX = array[1];
//rEAX.EXA[2].EX = 0;
//rEAX.EXA[3].EX = 0;
return sRET::SUCCESS;;
}
//////////////////////////////////////////////////////////////////////////
ADD_IWzASM_HANDLER( MOV_EAX0_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_ERP0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.ERP.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_ERP1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.ERP.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_ERP2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.ERP.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX0_ERP3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[0].EX = rREGISTER.ERP.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_ERP0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.ERP.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_ERP1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.ERP.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_ERP2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.ERP.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX1_ERP3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[1].EX = rREGISTER.ERP.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_ERP0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.ERP.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_ERP1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.ERP.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_ERP2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.ERP.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX2_ERP3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[2].EX = rREGISTER.ERP.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_ERP0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.ERP.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_ERP1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.ERP.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_ERP2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.ERP.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX3_ERP3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EXA[3].EX = rREGISTER.ERP.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP0_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP1_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP2_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[2].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EAX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EAX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EAX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EAX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EAX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EAX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EAX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EAX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EBX0 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EBX.EXA[0].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EBX1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EBX.EXA[1].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EBX2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EBX.EXA[2].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP3_EBX3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EBX.EXA[3].EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EAX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = rREGISTER.EOP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX = rREGISTER.EOP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ECX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX = rREGISTER.EOP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EDX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX = rREGISTER.EOP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERP_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP = rREGISTER.EOP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EOP_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP = rREGISTER.EAX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EOP_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP = rREGISTER.EBX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EOP_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP = rREGISTER.ECX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EOP_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP = rREGISTER.EDX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EOP_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP = rREGISTER.ERP;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EOP_OFF , 4 )
{
// EOP1 = sCAL(OP,DT)
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP.EXA[1].EOPC = pNODE->EOPC;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EFP_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EFP = rREGISTER.EAX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EFP_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EFP = rREGISTER.EBX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EFP_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EFP = rREGISTER.ECX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EFP_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EFP = rREGISTER.EDX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EFP_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EFP = rREGISTER.ERP;
return sRET::SUCCESS;;
}
///
ADD_IWzASM_HANDLER( MOV_EAXE_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERPE_EABCDX , 0);
CALL_IWzASM_HANDLER(MOV_EAX_ERP , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EBXE_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERPE_EABCDX , 0);
CALL_IWzASM_HANDLER(MOV_EBX_ERP , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ECXE_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERPE_EABCDX , 0);
CALL_IWzASM_HANDLER(MOV_ECX_ERP , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EDXE_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERPE_EABCDX , 0);
CALL_IWzASM_HANDLER(MOV_EDX_ERP , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_ERPE_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EXA[0].EX = rREGISTER.EAX.EX;
rREGISTER.ERP.EXA[1].EX = rREGISTER.EBX.EX;
rREGISTER.ERP.EXA[2].EX = rREGISTER.ECX.EX;
rREGISTER.ERP.EXA[3].EX = rREGISTER.EDX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EABCDX_EAXE , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERP_EAX , 0);
CALL_IWzASM_HANDLER(MOV_EABCDX_ERPE , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EABCDX_EBXE , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERP_EBX , 0);
CALL_IWzASM_HANDLER(MOV_EABCDX_ERPE , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EABCDX_ECXE , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERP_ECX , 0);
CALL_IWzASM_HANDLER(MOV_EABCDX_ERPE , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EABCDX_EDXE , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER(MOV_ERP_EDX , 0);
CALL_IWzASM_HANDLER(MOV_EABCDX_ERPE , 0);
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOV_EABCDX_ERPE , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = rREGISTER.ERP.EXA[0].EX;
rREGISTER.EBX.EX = rREGISTER.ERP.EXA[1].EX;
rREGISTER.ECX.EX = rREGISTER.ERP.EXA[2].EX;
rREGISTER.EDX.EX = rREGISTER.ERP.EXA[3].EX;
return sRET::SUCCESS;;
}
//////////////////////////////////////////////////////////////////////////
ADD_IWzASM_HANDLER( MOVP_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRB = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRW = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRD = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRD = rREGISTER.EBX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRW = rREGISTER.EBX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRB = rREGISTER.EBX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRD = rREGISTER.ECX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRW = rREGISTER.ECX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRB = rREGISTER.ECX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRD = rREGISTER.EDX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRW = rREGISTER.EDX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRB = rREGISTER.EDX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRD = rREGISTER.ERP.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRW = rREGISTER.ERP.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EAX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EAX.PTRB = rREGISTER.ERP.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRB = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRW = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRD = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRD = rREGISTER.EAX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRW = rREGISTER.EAX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRB = rREGISTER.EAX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRD = rREGISTER.ECX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRW = rREGISTER.ECX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRB = rREGISTER.ECX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRD = rREGISTER.EDX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRW = rREGISTER.EDX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRB = rREGISTER.EDX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRD = rREGISTER.ERP.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRW = rREGISTER.ERP.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EBX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EBX.PTRB = rREGISTER.ERP.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRB = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRW = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRD = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRD = rREGISTER.EAX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRW = rREGISTER.EAX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRB = rREGISTER.EAX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRD = rREGISTER.EBX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRW = rREGISTER.EBX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRB = rREGISTER.EBX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRD = rREGISTER.EDX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRW = rREGISTER.EDX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRB = rREGISTER.EDX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRD = rREGISTER.ERP.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRW = rREGISTER.ERP.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ECX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ECX.PTRB = rREGISTER.ERP.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRB = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRW = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRD = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRD = rREGISTER.EAX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRW = rREGISTER.EAX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRB = rREGISTER.EAX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRD = rREGISTER.EBX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRW = rREGISTER.EBX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRB = rREGISTER.EBX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRD = rREGISTER.ECX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRW = rREGISTER.ECX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRB = rREGISTER.ECX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRD = rREGISTER.ERP.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRW = rREGISTER.ERP.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EDX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EDX.PTRB = rREGISTER.ERP.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRB = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRW = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRD = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRD = rREGISTER.EAX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRW = rREGISTER.EAX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRB = rREGISTER.EAX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRD = rREGISTER.EBX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRW = rREGISTER.EBX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRB = rREGISTER.EBX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRD = rREGISTER.ECX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRW = rREGISTER.ECX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRB = rREGISTER.ECX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRD = rREGISTER.EDX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRW = rREGISTER.EDX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_ERP_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.ERP.PTRB = rREGISTER.EDX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRB = pNODE->L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRW = pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRD = pNODE->EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRD = rREGISTER.EAX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRW = rREGISTER.EAX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRB = rREGISTER.EAX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRD = rREGISTER.EBX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRW = rREGISTER.EBX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRB = rREGISTER.EBX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRD = rREGISTER.ECX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRW = rREGISTER.ECX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRB = rREGISTER.ECX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRD = rREGISTER.EDX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRW = rREGISTER.EDX.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRB = rREGISTER.EDX.L;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRD = rREGISTER.ERP.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRW = rREGISTER.ERP.X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVP_EOP_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
*rREGISTER.EOP.PTRB = rREGISTER.ERP.L;
return sRET::SUCCESS;;
}
//////////////////////////////////////////////////////////////////////////
ADD_IWzASM_HANDLER( MOVX_EAX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EAX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EAX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EAX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EBX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EBX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EBX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.ECX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.ECX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.ECX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EDX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EDX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EDX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.ERP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.ERP.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.ERP.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EAX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = *rREGISTER.EOP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EAX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EAX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EAX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EBX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EBX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EBX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.ECX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.ECX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.ECX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EDX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EDX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EDX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.ERP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.ERP.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.ERP.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EBX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX = *rREGISTER.EOP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EAX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EAX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EAX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EBX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EBX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EBX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.ECX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.ECX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.ECX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EDX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EDX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EDX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.ERP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.ERP.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.ERP.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_ECX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX = *rREGISTER.EOP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EAX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_AX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EAX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_AL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EAX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EBX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_BX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EBX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_BL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EBX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.ECX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_CX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.ECX.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_CL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.ECX.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EDX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_DX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EDX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_DL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EDX.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.ERP.PTRD;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_PX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.ERP.PTRW;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_PL , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.ERP.PTRB;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MOVX_EDX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX = *rREGISTER.EOP.PTRD;
return sRET::SUCCESS;;
}
//////////////////////////////////////////////////////////////////////////
ADD_IWzASM_HANDLER( PUSH_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.EAX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.EBX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.ECX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.EDX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.ERP );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_EFP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.EFP );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.EOP );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( PUSH_GPR , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.StoreGPR( VM_REGISTER );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( PUSH_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.Push( rREGISTER.EDX );
VM_STACK.Push( rREGISTER.ECX );
VM_STACK.Push( rREGISTER.EBX );
VM_STACK.Push( rREGISTER.EAX );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( PUSH_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uARG;
uARG.EX = pNODE->L;
VM_STACK.Push( uARG );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( PUSH_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uARG;
uARG.EX = pNODE->X;
VM_STACK.Push( uARG );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( PUSH_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uARG;
uARG.EX = pNODE->EX;
VM_STACK.Push( uARG );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( PUSH_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uARG;
uARG.EX = pNODE->X;
VM_STACK.Push( uARG );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( POP_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_EFP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EFP = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP = VM_STACK.Pop();
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( POP_GPR , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_STACK.LoadGPR( VM_REGISTER );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( POP_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX = VM_STACK.Pop();
rREGISTER.EBX = VM_STACK.Pop();
rREGISTER.ECX = VM_STACK.Pop();
rREGISTER.EDX = VM_STACK.Pop();
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( CLR_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX ^= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLR_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX ^= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLR_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX ^= rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLR_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX ^= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLR_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ERP.EX ^= rREGISTER.ERP.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( CLR_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.EOP), sizeof(rREGISTER.EOP) );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( CLR_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER( CLR_EAX , 0 );
CALL_IWzASM_HANDLER( CLR_EBX , 0 );
CALL_IWzASM_HANDLER( CLR_ECX , 0 );
CALL_IWzASM_HANDLER( CLR_EDX , 0 );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.EAX), sizeof(rREGISTER.EAX) );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.EBX), sizeof(rREGISTER.EBX) );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.ECX), sizeof(rREGISTER.ECX) );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.EDX), sizeof(rREGISTER.EDX) );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.ERP), sizeof(rREGISTER.ERP) );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
ZeroMemory( &(rREGISTER.EOP), sizeof(rREGISTER.EOP) );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CLRA_EABCDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
CALL_IWzASM_HANDLER( CLRA_EAX , 0 );
CALL_IWzASM_HANDLER( CLRA_EBX , 0 );
CALL_IWzASM_HANDLER( CLRA_ECX , 0 );
CALL_IWzASM_HANDLER( CLRA_EDX , 0 );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( XOR_EAX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX ^= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( XOR_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX ^= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( XOR_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX ^= rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( XOR_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX ^= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( AND_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX &= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( AND_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX &= rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( AND_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX &= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( OR_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX |= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( OR_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX |= rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( OR_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX |= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( NOT_EAX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = !rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( NOT_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = !rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( NOT_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = !rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( NOT_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = !rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMPL_EAX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = ~rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMPL_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = ~rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMPL_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = ~rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMPL_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX = ~rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHR_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX >>= pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHR_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX >>= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHR_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX >>= rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHR_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX >>= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHL_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX <<= pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHL_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX <<= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHL_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX <<= rREGISTER.ECX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SHL_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX <<= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
#define CALC_RORB_IDX(idx) ( ((idx)+1) % 4 )
ADD_IWzASM_HANDLER( RORB_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.EAX.EXA[CALC_RORB_IDX(3)];
rREGISTER.EAX.EXA[CALC_RORB_IDX(3)] = rREGISTER.EAX.EXA[3];
rREGISTER.EAX.EXA[CALC_RORB_IDX(2)] = rREGISTER.EAX.EXA[2];
rREGISTER.EAX.EXA[CALC_RORB_IDX(1)] = rREGISTER.EAX.EXA[1];
rREGISTER.EAX.EXA[CALC_RORB_IDX(0)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( RORB_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.EBX.EXA[CALC_RORB_IDX(3)];
rREGISTER.EBX.EXA[CALC_RORB_IDX(3)] = rREGISTER.EBX.EXA[3];
rREGISTER.EBX.EXA[CALC_RORB_IDX(2)] = rREGISTER.EBX.EXA[2];
rREGISTER.EBX.EXA[CALC_RORB_IDX(1)] = rREGISTER.EBX.EXA[1];
rREGISTER.EBX.EXA[CALC_RORB_IDX(0)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( RORB_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.ECX.EXA[CALC_RORB_IDX(3)];
rREGISTER.ECX.EXA[CALC_RORB_IDX(3)] = rREGISTER.ECX.EXA[3];
rREGISTER.ECX.EXA[CALC_RORB_IDX(2)] = rREGISTER.ECX.EXA[2];
rREGISTER.ECX.EXA[CALC_RORB_IDX(1)] = rREGISTER.ECX.EXA[1];
rREGISTER.ECX.EXA[CALC_RORB_IDX(0)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( RORB_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.EDX.EXA[CALC_RORB_IDX(3)];
rREGISTER.EDX.EXA[CALC_RORB_IDX(3)] = rREGISTER.EDX.EXA[3];
rREGISTER.EDX.EXA[CALC_RORB_IDX(2)] = rREGISTER.EDX.EXA[2];
rREGISTER.EDX.EXA[CALC_RORB_IDX(1)] = rREGISTER.EDX.EXA[1];
rREGISTER.EDX.EXA[CALC_RORB_IDX(0)] = rBK;
return sRET::SUCCESS;
}
#define CALC_ROLB_IDX(idx) ( ((idx)+3) % 4 )
ADD_IWzASM_HANDLER( ROLB_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.EAX.EXA[3];
rREGISTER.EAX.EXA[CALC_ROLB_IDX(0)] = rREGISTER.EAX.EXA[0];
rREGISTER.EAX.EXA[CALC_ROLB_IDX(1)] = rREGISTER.EAX.EXA[1];
rREGISTER.EAX.EXA[CALC_ROLB_IDX(2)] = rREGISTER.EAX.EXA[2];
rREGISTER.EAX.EXA[CALC_ROLB_IDX(3)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( ROLB_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.EBX.EXA[3];
rREGISTER.EBX.EXA[CALC_ROLB_IDX(0)] = rREGISTER.EBX.EXA[0];
rREGISTER.EBX.EXA[CALC_ROLB_IDX(1)] = rREGISTER.EBX.EXA[1];
rREGISTER.EBX.EXA[CALC_ROLB_IDX(2)] = rREGISTER.EBX.EXA[2];
rREGISTER.EBX.EXA[CALC_ROLB_IDX(3)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( ROLB_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.ECX.EXA[3];
rREGISTER.ECX.EXA[CALC_ROLB_IDX(0)] = rREGISTER.ECX.EXA[0];
rREGISTER.ECX.EXA[CALC_ROLB_IDX(1)] = rREGISTER.ECX.EXA[1];
rREGISTER.ECX.EXA[CALC_ROLB_IDX(2)] = rREGISTER.ECX.EXA[2];
rREGISTER.ECX.EXA[CALC_ROLB_IDX(3)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( ROLB_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uCONV rBK = rREGISTER.EDX.EXA[3];
rREGISTER.EDX.EXA[CALC_ROLB_IDX(0)] = rREGISTER.EDX.EXA[0];
rREGISTER.EDX.EXA[CALC_ROLB_IDX(1)] = rREGISTER.EDX.EXA[1];
rREGISTER.EDX.EXA[CALC_ROLB_IDX(2)] = rREGISTER.EDX.EXA[2];
rREGISTER.EDX.EXA[CALC_ROLB_IDX(3)] = rBK;
return sRET::SUCCESS;
}
ADD_IWzASM_HANDLER( ADD_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX += rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX += rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX += pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EAX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX += pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EAX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX += pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EBX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX += rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EBX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX += pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EBX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX += pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_EBX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX += pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX += rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX += rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX += rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( ADD_ECX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX += pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( ADD_EDX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX += pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( SUB_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX -= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX -= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX -= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX *= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX *= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX *= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX /= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX /= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX /= rREGISTER.EDX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX -= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX -= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX -= pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EAX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX -= pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EAX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX -= pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EBX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX -= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EBX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX -= pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EBX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX -= pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_EBX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.EX -= pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( SUB_ECX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.EX -= pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( SUB_EDX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.EX -= pNODE->X;
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( MUL_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX *= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX *= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX *= pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_EAX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX *= pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MUL_EAX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX *= pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX /= rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX /= rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_EAX_B1 , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX /= pNODE->L;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_EAX_B2 , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX /= pNODE->X;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DIV_EAX_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EAX.EX /= pNODE->EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( INC_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
++rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( INC_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
++rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DEC_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
--rREGISTER.EAX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( DEC_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
--rREGISTER.EBX.EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( TEST_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET =
(rREGISTER.EAX.EX != 0) ? sREG_NODE_BITS::RET_NOTZERO : sREG_NODE_BITS::RET_ZERO;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( TEST_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET =
(rREGISTER.EBX.EX != 0) ? sREG_NODE_BITS::RET_NOTZERO : sREG_NODE_BITS::RET_ZERO;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( TEST_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET =
(rREGISTER.ECX.EX != 0) ? sREG_NODE_BITS::RET_NOTZERO : sREG_NODE_BITS::RET_ZERO;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( TEST_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET =
(rREGISTER.EDX.EX != 0) ? sREG_NODE_BITS::RET_NOTZERO : sREG_NODE_BITS::RET_ZERO;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( TEST_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET =
(rREGISTER.ERP.EX != 0) ? sREG_NODE_BITS::RET_NOTZERO : sREG_NODE_BITS::RET_ZERO;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( TEST_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET =
(rREGISTER.EOP.EX != 0) ? sREG_NODE_BITS::RET_NOTZERO : sREG_NODE_BITS::RET_ZERO;
return sRET::SUCCESS;;
};
//////////////////////////////////////////////////////////////////////////
static sREG_NODE_BITS::eCMP ComapreResult( DWORD dw1, DWORD dw2 )
{
if( dw1 == dw2 )
return sREG_NODE_BITS::EQUAL;
else if( dw1 < dw2 )
return sREG_NODE_BITS::BELOW;
return sREG_NODE_BITS::ABOVE;
}
static VOID JumpAddress( WzASM_EIP& rEIP, WORD jCODE, BOOL bRET )
{
if( bRET )
{
OPW_T* ptr = rEIP.FindAddress( jCODE );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );// .OffsetPtr() = (BYTE*)ptr;
}
}
else
rEIP.OP.OFFSET.INC( 0 );
}
ADD_IWzASM_HANDLER( CMP_EAX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, rREGISTER.EBX.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_EAX_ECX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, rREGISTER.ECX.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_EAX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, rREGISTER.EDX.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_EAX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, rREGISTER.ERP.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_EAX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, rREGISTER.EAX.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_EBX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, rREGISTER.EBX.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_EDX , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, rREGISTER.EDX.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_ERP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, rREGISTER.ERP.EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_EAX_B1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, pNODE->EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_EAX_B2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, pNODE->X );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_EAX_B4 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.EAX.EX, pNODE->L );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_B1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, pNODE->EX );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_B2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, pNODE->X );
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( CMP_ECX_B4 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
VM_EFL.FLAG.TEST_RET = ComapreResult( rREGISTER.ECX.EX, pNODE->L );
return sRET::SUCCESS;;
};
static BOOL FindJumpMark( OPB_T bJmpMark, OPW_T& rwCODE )
{
WzASM_VMCore& rCORE = VMCORE_INTERFACE;
WzASM_VMCore::JAT_MATCH_IT itFIND = rCORE.JAT_MATCH_TABLE().find( bJmpMark );
if( itFIND != rCORE.JAT_MATCH_TABLE().end() )
{
WzASM_VMCore::sJAT_MATCH*& rpMATCH = itFIND->second;
rwCODE = rpMATCH->ASMOP;
return TRUE;
}
return FALSE;
}
ADD_IWzASM_HANDLER( JZEROEQUAL , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET == sREG_NODE_BITS::RET_ZERO )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JZERONOTEQUAL , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET == sREG_NODE_BITS::RET_NOTZERO )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JBELOW , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET == sREG_NODE_BITS::BELOW )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JNOTBELOW , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET != sREG_NODE_BITS::BELOW )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JABOVE , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET == sREG_NODE_BITS::ABOVE )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JNOTABOVE , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET != sREG_NODE_BITS::ABOVE )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JEQUAL , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET == sREG_NODE_BITS::EQUAL )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
}
ADD_IWzASM_HANDLER( JNOTEQUAL , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
BOOL bRET = FALSE;
if( VM_EFL.FLAG.TEST_RET != sREG_NODE_BITS::EQUAL )
bRET = TRUE;
OPW_T wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
JumpAddress( rEIP, wCODE, bRET );
return sRET::SUCCESS;;
}
return sRET::FAIL;
}
ADD_IWzASM_HANDLER( JUMP , 1 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WORD wCODE;
if( FindJumpMark( pNODE->L, wCODE ) )
{
OPW_T* ptr = rEIP.FindAddress( wCODE );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP1 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK01 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP2 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK02 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP3 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK03 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP4 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK04 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP5 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK05 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP6 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK06 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP7 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK07 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP8 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK08 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP9 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK09 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP10 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK10 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP11 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK11 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP12 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK12 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP13 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK13 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP14 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK14 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP15 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK15 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP16 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK16 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP17 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK17 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP18 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK18 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( JUMP19 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
OPW_T* ptr = rEIP.FindAddress( IWzASM::MARK19 );
if( ptr )
{
rEIP.OP.OFFSET.JMP( ptr );//rEIP.OP.OffsetPtr() = (BYTE*)ptr;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
//ADD_IWzASM_HANDLER( LEA_ECX , 0 )
//{
// DEBUGGING_OUTPUT();
// sREGISTER_BLK& rREGISTER = VM_REGISTER;
// WzASM_STACK& rSTACK = VM_STACK;
//
// rREGISTER.ECX = rEIP.REF.Find( rREGISTER.EAX.X );
// return sRET::SUCCESS;;
//};
//
//ADD_IWzASM_HANDLER( LEA_ECX_HASH , 2 )
//{
// DEBUGGING_OUTPUT();
// sREGISTER_BLK& rREGISTER = VM_REGISTER;
// WzASM_STACK& rSTACK = VM_STACK;
//
// rREGISTER.ECX = rEIP.REF.Find( pNODE->X );
// return sRET::SUCCESS;;
//};
//
//ADD_IWzASM_HANDLER( LEA_EDX , 0 )
//{
// DEBUGGING_OUTPUT();
// sREGISTER_BLK& rREGISTER = VM_REGISTER;
// WzASM_STACK& rSTACK = VM_STACK;
//
// rREGISTER.EDX = rEIP.REF.Find( rREGISTER.EAX.X );
// return sRET::SUCCESS;;
//};
//
//ADD_IWzASM_HANDLER( LEA_EDX_HASH , 2 )
//{
// DEBUGGING_OUTPUT();
// sREGISTER_BLK& rREGISTER = VM_REGISTER;
// WzASM_STACK& rSTACK = VM_STACK;
//
// rREGISTER.EDX = rEIP.REF.Find( pNODE->X );
// return sRET::SUCCESS;;
//};
ADD_IWzASM_HANDLER( LEA_EFP_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
WzASM_VMCore& VMCORE = VMCORE_INTERFACE;
WzASM_VMCore::IBF_HASH_MAP_IT itFIND = VMCORE.IBF_TABLE().find( pNODE->X );
if( itFIND != VMCORE.IBF_TABLE().end() )
{
rREGISTER.EFP.EXA[sARG::ARG0].PTR = itFIND->second;
return sRET::SUCCESS;;
}
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( LEA_REF_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
IWzASM_PROC uRES = VMCORE_INTERFACE.FindGResHandlerInfo( pNODE->X );
rEIP.Register_REF( uRES );
if( NULL == uRES.RESFUNC )
return sRET::FAIL;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( LEA_EAX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
// (WAVERIX)(NOTE)
// - DT SIZE°¡ 0À̸é, DT PTRÀº ÀÌÀü °ªÀ» À¯ÁöÇÑ´Ù.
// À¯¿ëÇÒ ¼öµµ ÀÖ°í, À§ÇèÇÒ ¼öµµ ÀÖ´Ù.
rREGISTER.EAX.PTRB = rREGISTER.EOP.EXA[sARG::ARG0].PTRB;
cOFF& rCAL = rREGISTER.EOP.EXA[sARG::ARG1].EOPC;
if( cOFF::ADD == rCAL.OP )
return CALL_IWzASM_HANDLER( ADD_EAX_B2, 2 );
if( cOFF::SUB == rCAL.OP )
return CALL_IWzASM_HANDLER( SUB_EAX_B2, 2 );
if( cOFF::NONE == rCAL.OP )
return sRET::SUCCESS;;
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( LEA_EBX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EBX.PTRB = rREGISTER.EOP.EXA[sARG::ARG0].PTRB;
cOFF& rCAL = rREGISTER.EOP.EXA[sARG::ARG1].EOPC;
if( cOFF::ADD == rCAL.OP )
return CALL_IWzASM_HANDLER( ADD_EBX_B2, 2 );
if( cOFF::SUB == rCAL.OP )
return CALL_IWzASM_HANDLER( SUB_EBX_B2, 2 );
if( cOFF::NONE == rCAL.OP )
return sRET::SUCCESS;;
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( LEA_ECX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.ECX.PTRB = rREGISTER.EOP.EXA[sARG::ARG0].PTRB;
cOFF& rCAL = rREGISTER.EOP.EXA[sARG::ARG1].EOPC;
if( cOFF::ADD == rCAL.OP )
return CALL_IWzASM_HANDLER( ADD_ECX_B2, 2 );
if( cOFF::SUB == rCAL.OP )
return CALL_IWzASM_HANDLER( SUB_ECX_B2, 2 );
if( cOFF::NONE == rCAL.OP )
return sRET::SUCCESS;;
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( LEA_EDX_EOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EDX.PTRB = rREGISTER.EOP.EXA[sARG::ARG0].PTRB;
cOFF& rCAL = rREGISTER.EOP.EXA[sARG::ARG1].EOPC;
if( cOFF::ADD == rCAL.OP )
return CALL_IWzASM_HANDLER( ADD_EDX_B2, 2 );
if( cOFF::SUB == rCAL.OP )
return CALL_IWzASM_HANDLER( SUB_EDX_B2, 2 );
if( cOFF::NONE == rCAL.OP )
return sRET::SUCCESS;;
return sRET::FAIL;
};
ADD_IWzASM_HANDLER( LEA_EOP_HASH , 2 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
NOT_IMPLEMENTATION();
//rREGISTER.EOP.EXA[sARG::ARG0].PTR = pNODE->EXA[sARG::ARG0].PTR;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( LEA_EOP_B4 , 4 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
// Ãß°¡ ¿¬»ê ¸í·É¾î¸¸ ·Îµù
rREGISTER.EOP.EXA[sARG::ARG1].EX = pNODE->EXA[sARG::ARG1].EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( LEA_EOP_HASHB4 , 6 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
NOT_IMPLEMENTATION();
//rREGISTER.EOP.EXA[sARG::ARG0].PTR = pNODE->EXA[sARG::ARG0].PTR;
rREGISTER.EOP.EXA[sARG::ARG1].EX = pNODE->EXA[sARG::ARG1].EX;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( LEA_EOP_EXA2B4 , 8 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
rREGISTER.EOP.EXA[sARG::ARG0].PTR = pNODE->EXA[sARG::ARG0].PTR;
rREGISTER.EOP.EXA[sARG::ARG1].EX = pNODE->EXA[sARG::ARG1].EX;
return sRET::SUCCESS;;
};
//
// GAME RESOURCE FUNCTION --
// ÇØ´ç ÀÎÀÚ´Â ECX¿¡ ÁÖ¾îÁø ÇÔ¼ö Æ÷ÀÎÅÍ(16)¿Í ½ºÅÿ¡ ÇÒ´çµÈ °ª Çϳª¸¦ ÀÔ·ÂÇØ¼­ È£ÃâÇÑ´Ù.
ADD_IWzASM_HANDLER( CALL_RC , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uNode = VM_STACK.Pop();
rREGISTER.ERP = rEIP.REF.RESFUNC( &uNode );
//rREGISTER.ERP.CONV = rEIP.REF.QueryByHandlerFN( rREGISTER.ECX.FN_FN, uNode.CONV );
return sRET::SUCCESS;;
};
////
//// GAME RESOURCE FUNCTION --
//// ÇØ´ç ÀÎÀÚ´Â ECX¿¡ ÁÖ¾îÁø ÇÔ¼ö Æ÷ÀÎÅÍ(16)¸¦ È£ÃâÇÑ´Ù.
//ADD_IWzASM_HANDLER( CALL_RD , 0 )
//{
// DEBUGGING_OUTPUT();
// sREGISTER_BLK& rREGISTER = VM_REGISTER;
// WzASM_STACK& rSTACK = VM_STACK;
//
// NOT_IMPLEMENTATION();
// //rREGISTER.ERP.CONV = rEIP.REF.QueryByHandlerDT( rREGISTER.ECX.FN_DT );
// return sRET::SUCCESS;;
//};
ADD_IWzASM_HANDLER( CALL_IBF , sizeof(WzPTR) )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uNODE = VM_STACK.Pop();
rREGISTER.ERP.CONV = pNODE->FN_IB( &uNODE );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( CALL_IBF_EFP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
uREG_NODE uNODE = VM_STACK.Pop();
rREGISTER.ERP.CONV = rREGISTER.EFP.FN_IB( &uNODE );
return sRET::SUCCESS;;
}
ADD_IWzASM_HANDLER( RET , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::RETURN;
};
ADD_IWzASM_HANDLER( MARK01 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK02 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK03 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK04 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK05 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK06 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK07 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK08 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK09 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK10 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK11 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK12 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK13 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK14 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK15 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK16 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK17 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK18 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( MARK19 , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};
ADD_IWzASM_HANDLER( NOP , 0 )
{
DEBUGGING_OUTPUT();
sREGISTER_BLK& rREGISTER = VM_REGISTER;
WzASM_STACK& rSTACK = VM_STACK;
return sRET::SUCCESS;;
};