Ejemplo n.º 1
0
        public override string ToString()
        {
            switch (Kind)
            {
            case IMOperandKind.Local:
                return("%" + Name);

            case IMOperandKind.Parameter:
                return(ParameterPrefix + Name);

            case IMOperandKind.Immediate:
                if (DataType.Kind == DataTypeKind.STRING8)
                {
                    return(DataType.Name + "(\"" + StringUtils.Escape(ImmediateValue.ToString()) + "\")");
                }
                else if (DataType.Kind == DataTypeKind.CHAR8)
                {
                    var strValue = (string)ImmediateValue;
                    return(DataType.Name + "('" + StringUtils.CharToPrintableStr(strValue[0]) + "')");
                }
                else
                {
                    return(DataType.Name + "(" + ImmediateValue.ToString() + ")");
                }

            case IMOperandKind.Global:
                return("@" + Name);

            case IMOperandKind.Identifier:
                return("'" + Name + "'");

            case IMOperandKind.Reference:
                return("[" + ChildValue + "]");

            default:
                throw new Exception();
            }
        }