private void CalcMpc() { var ctrlNxtAddrNoMsb = _uc.Mir.Substring(1, 8); var mbrRegIn = _fs.get_MBR().Substring(24, 8); var jmpcAddr = _uc.Mir[9] == '1' ? Utility.ToBin(Convert.ToInt32(ctrlNxtAddrNoMsb, 2) | Convert.ToInt32(mbrRegIn, 2), 8) : ctrlNxtAddrNoMsb; var aluFlag = _fs.get_ALUflag(); var nFlag = aluFlag[0]; var zFlag = aluFlag[1]; var jamN = Convert.ToInt32(_uc.Mir[10].ToString(), 2); var jamZ = Convert.ToInt32(_uc.Mir[11].ToString(), 2); var highBit = (nFlag & jamN) | (zFlag & jamZ); highBit |= Convert.ToInt32(_uc.Mpc[0].ToString(), 2); _uc.Mpc = highBit + jmpcAddr; }