예제 #1
0
        public override void Decode(Decoder decoder, ref Instruction instruction)
        {
            Debug.Assert(decoder.state.Encoding == EncodingKind.Legacy);
            decoder.ClearMandatoryPrefix(ref instruction);
            var handler = handlers[(int)decoder.state.mandatoryPrefix];

            if (handler.HasModRM)
            {
                decoder.ReadModRM();
            }
            handler.Decode(decoder, ref instruction);
        }
예제 #2
0
        public override void Decode(Decoder decoder, ref Instruction instruction)
        {
            Debug.Assert(decoder.state.Encoding == EncodingKind.Legacy);
            var handlers = decoder.state.mod == 3 ? handlers_reg : handlers_mem;
            var info     = handlers[(int)decoder.state.mandatoryPrefix];

            if (info.mandatoryPrefix)
            {
                decoder.ClearMandatoryPrefix(ref instruction);
            }
            info.handler.Decode(decoder, ref instruction);
        }
예제 #3
0
 public override void Decode(Decoder decoder, ref Instruction instruction)
 {
     Debug.Assert(decoder.state.Encoding == EncodingKind.Legacy);
     decoder.ClearMandatoryPrefix(ref instruction);
     handlers[(int)decoder.state.mandatoryPrefix].Decode(decoder, ref instruction);
 }