public static SimOperand CreateMemoryAddress(int size, SimRegister baseRegister, SimRegister index, int scale, int displacement) { var op = new SimOperand(size); op.IsMemory = true; op.Register = baseRegister; op.Index = index; op.Scale = scale; op.Displacement = displacement; return(op); }
private SimRegister AdjustRegisterSize(SimRegister register, int size) { if (size == 16) { if (register == CPU.EAX) { return(CPU.AX); } if (register == CPU.EBX) { return(CPU.BX); } if (register == CPU.ECX) { return(CPU.CX); } if (register == CPU.EDX) { return(CPU.DX); } if (register == CPU.ESI) { return(CPU.SI); } if (register == CPU.EDI) { return(CPU.DI); } } else if (size == 8) { if (register == CPU.EAX) { return(CPU.AL); } if (register == CPU.EBX) { return(CPU.BL); } if (register == CPU.ECX) { return(CPU.CL); } if (register == CPU.EDX) { return(CPU.DL); } } return(register); }
public SimOperand(SimRegister register) : this(register.Size) { Register = register; IsRegister = true; }
public static SimOperand CreateMemoryAddress(int size, SimRegister baseRegister, SimRegister index, int scale, int displacement) { var op = new SimOperand(size); op.IsMemory = true; op.Register = baseRegister; op.Index = index; op.Scale = scale; op.Displacement = displacement; return op; }