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]);
        }