public void popLocalSimple() { var path = Path.GetTempFileName(); System.IO.File.WriteAllText(path, popLocalSimpleProgram); var translator = new vmtranslator.vmtranslator(path); var assembly = translator.TranslateToAssembly().ToList(); assembly.Add(assembler.CommandType.HALT.ToString()); System.IO.File.WriteAllLines(path, assembly); assembly.ForEach(x => Console.WriteLine(x)); var assemblerInstance = new assembler.Assembler(path); var assembledResult = assemblerInstance.ConvertToBinary(); var binaryProgram = assembledResult.Select(x => Convert.ToInt32(x, 16)); var simulatorInstance = new simulator.eightChipsSimulator(16, (int)Math.Pow(2, 16)); simulatorInstance.setUserCode(binaryProgram.ToArray()); simulatorInstance.ProgramCounter = (int)MemoryMap[MemoryMapKeys.user_code].AbsoluteStart; //setup monitors: var stackHandle = simulatorInstance.monitor(33040 + 5); simulatorInstance.logger.enabled = true; simulatorInstance.runSimulation(); var stackValues = stackHandle.getValues(); simulatorInstance.printMemory(0); stackValues.ForEach(x => Console.WriteLine(x)); Console.WriteLine("_____"); Assert.IsTrue(stackValues.SequenceEqual(new List <int>() { 0, 725, 2, })); }
public void simpleAddTest() { var path = Path.GetTempFileName(); System.IO.File.WriteAllText(path, simeplAddTestProgram); var translator = new vmtranslator.vmtranslator(path); var assembly = translator.TranslateToAssembly().ToList(); assembly.Add(assembler.CommandType.HALT.ToString()); System.IO.File.WriteAllLines(path, assembly); var assemblerInstance = new assembler.Assembler(path); var assembledResult = assemblerInstance.ConvertToBinary(); var binaryProgram = assembledResult.Select(x => Convert.ToInt32(x, 16)); var simulatorInstance = new simulator.eightChipsSimulator(16, (int)Math.Pow(2, 16)); simulatorInstance.setUserCode(binaryProgram.ToArray()); simulatorInstance.ProgramCounter = (int)MemoryMap[MemoryMapKeys.user_code].AbsoluteStart; simulatorInstance.logger.enabled = true; assembly.ForEach(x => Console.WriteLine(x)); try { simulatorInstance.runSimulation(); } catch (Exception e) { simulatorInstance.printMemory(0); throw e; } Assert.AreEqual(15, simulatorInstance.mainMemory[simulatorInstance.mainMemory[256] - 1]); }