public X86_SIB(X86_Instruction insn, byte sib) { Scale = (sib & 0xc0) >> 6; Index = (sib & 0x38) >> 3; Base = (sib & 0x7); if ((insn.RexPrefix & X86_REX_Prefix.REX_X) != 0) { Index |= 0x08; } if ((insn.RexPrefix & X86_REX_Prefix.REX_B) != 0) { Base |= 0x08; } }
public X86_ModRM(X86_Instruction insn, byte modrm) { Mod = (modrm & 0xc0) >> 6; Reg = (modrm & 0x38) >> 3; R_M = (modrm & 0x7); if ((insn.RexPrefix & X86_REX_Prefix.REX_R) != 0) { Reg |= 0x08; } if ((insn.RexPrefix & X86_REX_Prefix.REX_B) != 0) { R_M |= 0x08; } }
public X86_ModRM(X86_Instruction insn, byte modrm) { Mod = (modrm & 0xc0) >> 6; Reg = (modrm & 0x38) >> 3; R_M = (modrm & 0x7); if ((insn.RexPrefix & X86_REX_Prefix.REX_R) != 0) Reg |= 0x08; if ((insn.RexPrefix & X86_REX_Prefix.REX_B) != 0) R_M |= 0x08; }
public X86_SIB(X86_Instruction insn, byte sib) { Scale = (sib & 0xc0) >> 6; Index = (sib & 0x38) >> 3; Base = (sib & 0x7); if ((insn.RexPrefix & X86_REX_Prefix.REX_X) != 0) Index |= 0x08; if ((insn.RexPrefix & X86_REX_Prefix.REX_B) != 0) Base |= 0x08; }
internal override Instruction ReadInstruction(TargetMemoryAccess memory, TargetAddress address) { return(X86_Instruction.DecodeInstruction(this, memory, address)); }