public override IntelInstruction Decode(X86Disassembler disasm, byte op, string opFormat) { if (disasm.defaultAddressWidth.BitSize == 64) { return(oprec64.Decode(disasm, op, opFormat)); } else { return(oprec32.Decode(disasm, op, opFormat)); } }
public override IntelInstruction Decode(X86Disassembler disasm, byte op, string opFormat) { int grp = Group - 1; byte modRm; if (!disasm.TryEnsureModRM(out modRm)) { return(null); } OpRec opRec = s_aOpRecGrp[grp * 8 + ((modRm >> 3) & 0x07)]; return(opRec.Decode(disasm, op, opFormat + format)); }
public override IntelInstruction Decode(X86Disassembler disasm, byte op, string opFormat) { byte modRm; if (!disasm.TryEnsureModRM(out modRm)) { return(null); } if ((modRm & 0xC0) == 0xC0) { return(regInstrs[modRm & 0x07].Decode(disasm, op, opFormat)); } else { return(memInstr.Decode(disasm, op, opFormat)); } }