private void ProcessOverrideOperand(ref x86Instruction instruction) { x86OperandType operandType = instruction.OpCode.GetOverrideOperandType(); if (operandType.HasFlag(x86OperandType.ForceDwordPointer)) { if (instruction.operand2 != null) { if (instruction.operand2.Value is uint) { instruction.operand2 = CreatePtr((uint)instruction.operand2.Value, OperandType.DwordPointer); } else { instruction.operand2.ValueType = OperandType.DwordPointer; } } else if (instruction.operand1.Value is uint) { instruction.operand1 = CreatePtr((uint)instruction.operand1.Value, OperandType.DwordPointer); } else { instruction.operand1.ValueType = OperandType.DwordPointer; } } if (operandType.HasFlag(x86OperandType.OverrideOperandOrder)) { Operand temp = instruction.operand1; instruction.operand1 = instruction.operand2; instruction.operand2 = temp; } }
internal x86OpCode(string name, byte[] opcodebytes, int operandlength, x86OperandType type, int variableByteIndex) { this._name = name; this._originalBytes = opcodebytes; this._opcodeBytes = opcodebytes; this._operandType = type; this._operandLength = operandlength; this._variableByteIndex = variableByteIndex; }
internal x86OpCode(string name, byte[] opcodebytes, int operandlength, x86OperandType type) { this._name = name; this._originalBytes = opcodebytes; this._opcodeBytes = opcodebytes; this._operandType = type; this._operandLength = operandlength; _variableByteIndex = -1; }
internal x86OpCode(string name, byte[] opcodebytes, int operandlength, x86OperandType type, int variableByteIndex) { this.name = name; this.originalbytes = opcodebytes; this.opcodebytes = opcodebytes; this.operandtype = type; this.operandlength = operandlength; this.variableByteIndex = variableByteIndex; }
internal x86OpCode(string name, byte[] opcodebytes, int operandlength, x86OperandType type) { this.name = name; this.originalbytes = opcodebytes; this.opcodebytes = opcodebytes; this.operandtype = type; this.operandlength = operandlength; variableByteIndex = -1; }