示例#1
0
 public ParsedInstructionResult(string instructionStr, ParsedInstructionFlags flags, string mnemonic, ParsedInstructionOperand[] operands, InstrStrImpliedOp[] impliedOps)
 {
     foreach (var op in operands)
     {
         if ((op.Flags & ParsedInstructionOperandFlags.Broadcast) != 0)
         {
             flags |= ParsedInstructionFlags.Broadcast;
             break;
         }
     }
     InstructionStr = instructionStr;
     Flags          = flags;
     Mnemonic       = mnemonic;
     Operands       = operands;
     ImpliedOps     = impliedOps;
 }
示例#2
0
        public InstructionStringParser(Dictionary <string, EnumValue> toRegister, string instrStr)
        {
            this.toRegister = toRegister;
            this.instrStr   = instrStr;
            int index = instrStr.IndexOf(' ', StringComparison.Ordinal);

            if (index < 0)
            {
                index = instrStr.Length;
            }
            mnemonic = instrStr.Substring(0, index);
            var opsStr = instrStr.Substring(index).Trim();

            operands   = opsStr == string.Empty ? Array.Empty <string>() : opsStr.Split(',').Select(a => a.Trim()).ToArray();
            instrFlags = ParsedInstructionFlags.None;
        }