Beispiel #1
0
        public string ToStringShort()
        {
            var sb = new StringBuilder();

            var opcodeName = Name;

            while (opcodeName.Length < 4)
            {
                opcodeName += " ";
            }

            sb.AppendFormat("{0} X{1} Y{2} Z{3} N{4} ",
                            opcodeName, X.ToString("X1"), Y.ToString("X1"), Z.ToString("X1"), N.ToString("X1"));
            sb.AppendFormat("HHLL:{0}", HHLL.ToString("X4"));

            return(sb.ToString());
        }
Beispiel #2
0
        public override string ToString()
        {
            var sb = new StringBuilder();

            var opcodeName = Name;

            while (opcodeName.Length < 4)
            {
                opcodeName += " ";
            }

            //sb.AppendFormat("{0} X{1} Y{2} Z{3} N{4} ",
            //    opcodeName, X.ToString("X1"), Y.ToString("X1"), Z.ToString("X1"), N.ToString("X1"));
            //sb.AppendFormat("HHLL:{0} [{1}]", HHLL.ToString("X4"), ArrayToString(RawOpcode));

            string addressHHLL = HexPrefix + HHLL.ToString("X");

            if (Is_GroupMember(RawOpcode[0], GroupMembers.LLHH) && !string.IsNullOrEmpty(Label) &&
                !Is_GroupMember(RawOpcode[0], GroupMembers.IM))
            {
                addressHHLL = Label;
            }

            sb.AppendFormat("{0} ", opcodeName);

            if (Is_GroupMember(RawOpcode[0], GroupMembers.YX) &&
                !Is_GroupMember(RawOpcode[0], GroupMembers.LLHH))
            {
                sb.AppendFormat("R{0}, R{1}", X.ToString("X"), Y.ToString("X"));
            }
            if (Is_GroupMember(RawOpcode[0], GroupMembers.YX) &&
                Is_GroupMember(RawOpcode[0], GroupMembers.LLHH))
            {
                sb.AppendFormat("R{0}, R{1}, {2}", X.ToString("X"), Y.ToString("X"), addressHHLL);
            }
            if (Is_GroupMember(RawOpcode[0], GroupMembers.LLHH) &&
                Is_GroupMember(RawOpcode[0], GroupMembers.OX))
            {
                sb.AppendFormat("R{0}, {1}", X.ToString("X"), addressHHLL);
            }
            if (Is_GroupMember(RawOpcode[0], GroupMembers.LLHH) &&
                !Is_GroupMember(RawOpcode[0], GroupMembers.OX) &&
                !Is_GroupMember(RawOpcode[0], GroupMembers.YX))
            {
                sb.AppendFormat("{0}", addressHHLL);
            }
            if (Is_GroupMember(RawOpcode[0], GroupMembers.YXZ))
            {
                sb.AppendFormat("R{0}, R{1}, R{2}", X.ToString("X"), Y.ToString("X"), Z.ToString("X"));
            }
            if (Is_GroupMember(RawOpcode[0], GroupMembers.ON))
            {
                if (Is_GroupMember(RawOpcode[0], GroupMembers.OX))
                {
                    sb.AppendFormat("R{0}, {2}{1}", X.ToString("X"), N.ToString("X"), HexPrefix);
                }
                else
                {
                    sb.AppendFormat("{1}{0}", N.ToString("X"), HexPrefix);
                }
            }
            else
            {
                if (Is_GroupMember(RawOpcode[0], GroupMembers.OX) &&
                    (RawOpcode[0] == 0xc0 || RawOpcode[0] == 0xc1) || RawOpcode[0] == 0xd1 ||
                    RawOpcode[0] == 0xe1 || RawOpcode[0] == 0xe4)
                {
                    sb.AppendFormat("R{0}", X.ToString("X"));
                }
            }
            return(sb.ToString());
        }