Пример #1
0
 // RexPrefixOffset: byte; //if specified specifies which byte should be used for the rexw (e.g f3 before rex )
 //paramencoding: TParamEncoding;
 public AOpCode()
 {
     Mnemonic           = "";
     OpCode1            = AExtraOpCode.None;
     OpCode2            = AExtraOpCode.None;
     ParamType1         = AParam.None;
     ParamType2         = AParam.None;
     ParamType3         = AParam.None;
     ParamType4         = AParam.None;
     Bytes              = 0;
     Bt1                = 0;
     Bt2                = 0;
     Bt3                = 0;
     Bt4                = 0;
     Signed             = false;
     W0                 = false;
     W1                 = false;
     InvalidIn64Bit     = false;
     InvalidIn32Bit     = false;
     CanDoAddressSwitch = false;
     DefaultType        = false;
     HasVex             = false;
     VexL               = 0x00;
     VexOpCodeExtension = AVexOpCodeExtension.None;
     VexLeadingOpCode   = AVexLeadingOpCode.None;
     VexExtraParam      = 0;
 }
Пример #2
0
        public int EoToReg(AExtraOpCode eo)
        {
            var result = -1;

            switch (eo)
            {
            case AExtraOpCode.Reg0:
                result = 0;
                break;

            case AExtraOpCode.Reg1:
                result = 1;
                break;

            case AExtraOpCode.Reg2:
                result = 2;
                break;

            case AExtraOpCode.Reg3:
                result = 3;
                break;

            case AExtraOpCode.Reg4:
                result = 4;
                break;

            case AExtraOpCode.Reg5:
                result = 5;
                break;

            case AExtraOpCode.Reg6:
                result = 6;
                break;

            case AExtraOpCode.Reg7:
                result = 7;
                break;
            }
            return(result);
        }