// function for finding the type of instruction static string check_type(string op, ref RTdecoder rtd, ref ITdecoder itd, ref JTdecoder jtd) { // checking if the instruction is R type foreach (KeyValuePair <string, string> item in rtd.instructions) { if (op == item.Key) { return("r"); } } // checking if the instruction is I type foreach (KeyValuePair <string, string> item in itd.instructions) { if (op == item.Key) { return("i"); } } // checking if the instruction is J type foreach (KeyValuePair <string, string> item in jtd.instructions) { if (op == item.Key) { return("j"); } } // what about directives? how to find out them? return(""); }
public string[] decode(string line) { RTdecoder rtd = new RTdecoder(); ITdecoder itd = new ITdecoder(); JTdecoder jtd = new JTdecoder(); string[] fields = new string[6]; if (line.Contains("D")) { fields = directive_calc(line); } else { string type = check_type(line.Substring(4, 4), ref rtd, ref itd, ref jtd); if (type == "r") { fields = rtd.calc(line); } else if (type == "i") { fields = itd.clac(line); } else if (type == "j") { fields = jtd.calc(line); } } return(fields); }