Exemple #1
0
 public override Tlcs900Instruction Decode(byte b, Tlcs900Disassembler dasm)
 {
     if (!dasm.rdr.TryReadByte(out b))
     {
         return(null);
     }
     dasm.opSize = width[0];
     dasm.opSrc  = dasm.ExtraRegister(b, width);
     if (dasm.opSrc == null)
     {
         return(null);
     }
     if (!dasm.rdr.TryReadByte(out b))
     {
         return(null);
     }
     return(regOpRecs[b].Decode(b, dasm));
 }
Exemple #2
0
            public override Tlcs900Instruction Decode(uint bPrev, Tlcs900Disassembler dasm)
            {
                if (!dasm.rdr.TryReadByte(out byte b))
                {
                    return(null);
                }
                dasm.opSize = width;
                var op = dasm.ExtraRegister(b);

                if (op == null)
                {
                    return(dasm.CreateInvalidInstruction());
                }
                if (!dasm.rdr.TryReadByte(out b))
                {
                    return(dasm.CreateInvalidInstruction());
                }
                dasm.ops.Add(op);
                return(regDecoders[b].Decode(b, dasm));
            }