Mono.Debugger.Architectures.X86_Instruction.TwoByteOpcode C# (CSharp) Method

TwoByteOpcode() protected method

protected TwoByteOpcode ( TargetReader reader ) : void
reader Mono.Debugger.Backend.TargetReader
return void
        protected void TwoByteOpcode(TargetReader reader)
        {
            byte opcode = reader.ReadByte ();

            if (TwoByte_Has_ModRM [opcode] != 0)
                DecodeModRM (reader);

            if ((opcode >= 0x80) && (opcode <= 0x8f)) {
                if ((RexPrefix & X86_REX_Prefix.REX_W) != 0) {
                    long offset = reader.BinaryReader.ReadInt32 ();
                    long long_target = Address.Address + offset + 5;
                    CallTarget = new TargetAddress (
                        Address.Domain, long_target);
                } else if ((Prefix & X86_Prefix.ADDR) != 0) {
                    short offset = reader.BinaryReader.ReadInt16 ();
                    int short_target = (short)Address.Address + offset + 3;
                    CallTarget = new TargetAddress (
                        Address.Domain, short_target);
                } else {
                    int offset = reader.BinaryReader.ReadInt32 ();
                    CallTarget = Address + offset + 5;
                }
                type = Type.ConditionalJump;
            }
        }