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; }
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; }