コード例 #1
0
        public BinaryString GetArgByValue(string placeholder, string textDisplay)
        {
            if (LanguageDefinition.PlaceHolders.EERegisters.Contains(placeholder))
            {
                var binary = LanguageDefinition.EERegisters
                             .Find(r => r.TextDisplay == textDisplay).Binary;

                return(new BinaryString(binary));
            }
            else if (LanguageDefinition.PlaceHolders.COP0Registers.Equals(placeholder))
            {
                var binary = LanguageDefinition.COP0Registers
                             .Find(r => r.TextDisplay == textDisplay).Binary;

                return(new BinaryString(binary));
            }
            else if (LanguageDefinition.PlaceHolders.COP1Registers.Contains(placeholder))
            {
                var binary = LanguageDefinition.COP1Registers
                             .Find(r => r.TextDisplay == textDisplay).Binary;

                return(new BinaryString(binary));
            }
            else if (LanguageDefinition.PlaceHolders.JType.Equals(placeholder))
            {
                var hexString = new HexString(textDisplay);
                return(new BinaryString(Convert.ToString(hexString.ToInt() / 4, 2).PadLeft(26, '0')));
            }
            else if (LanguageDefinition.PlaceHolders.IType.Contains(placeholder))
            {
                return(new HexString(textDisplay).ToBinaryString());
            }
            else if (LanguageDefinition.PlaceHolders.SA.Equals(placeholder))
            {
                return(new BinaryString(Convert.ToString(int.Parse(textDisplay), 2).PadLeft(5, '0')));
            }
            else if (LanguageDefinition.PlaceHolders.Code.Equals(placeholder))
            {
                return(new BinaryString(Convert.ToString(int.Parse(textDisplay), 2).PadLeft(20, '0')));
            }
            else
            {
                return(null);
            }
        }