示例#1
0
        public override string ToString()
        {
            string append = this.OpCode.ToString().ToUpperInvariant();

            int usage = (int)OpCode.GetFieldUsage();

            if (usage != 0)
            {
                append += GenSpaces();
            }

            if ((this.OpCode == VM.OpCode.Meta) || ((usage & ((int)InstructionFieldUsage.NumValAsCodeAddress)) == (int)InstructionFieldUsage.NumValAsCodeAddress))
            {
                append += " " + NumVal.ToString("X8");
            }
            else if ((usage & ((int)InstructionFieldUsage.NumVal)) != 0)
            {
                append += " " + NumVal.ToString();
            }

            if ((usage & ((int)InstructionFieldUsage.NumVal2)) != 0)
            {
                append += " " + NumVal2.ToString();
            }

            if ((usage & ((int)InstructionFieldUsage.Name)) != 0)
            {
                append += " " + Name;
            }

            if ((usage & ((int)InstructionFieldUsage.Value)) != 0)
            {
                append += " " + PurifyFromNewLines(Value);
            }

            if ((usage & ((int)InstructionFieldUsage.Symbol)) != 0)
            {
                append += " " + Symbol;
            }

            if (((usage & ((int)InstructionFieldUsage.SymbolList)) != 0) && (SymbolList != null))
            {
                append += " " + string.Join(",", SymbolList.Select(s => s.ToString()).ToArray());
            }

            return(append);
        }