#pragma once
#include "..\DisasmContext.h"

class CMov : public CDisasmContext
{
public:
	virtual bool Disasm(BYTE*& ptr);
protected:
	enum OpCodeHeader
	{
		MOV_RM_SEG = 0x8C,
		MOV_SEG_RM = 0x8E,
		MOV_REG_IMM = 0xB,
	};

	void Mov_RM_S(BYTE oo,BYTE mmm,BYTE sss);
	void Mov_S_RM(BYTE oo,BYTE mmm,BYTE sss);
	USHORT* Mov_R_I(BYTE w,BYTE rrr);
	bool Mov_RM_Seg(BYTE*& ptr);
	bool Mov_Seg_RM(BYTE*& ptr);
	bool Mov_Reg_Imm(BYTE*& ptr);
};
