Exemplo n.º 1
0
    def test_assemble(self):
        Registers.clear()
        instructions = "j 10000\nadd $s0, $a1, $t7\nsw $s1, 10($s2)\n"
        machine_code = Assembler.encode(instructions)

        self.assertEqual("0x0800271000af8020ae51000a", machine_code.value_base(16))
        self.assertEqual(instructions, DisAssembler.decode(machine_code))
Exemplo n.º 2
0
 def test_stack(self):
     Registers.clear()
     path = "./test/asm/stack.asm"
     Simulator.run_file(path)
     self.assertEqual(3, Registers.reg_get("$t4"))
     self.assertEqual(2, Registers.reg_get("$t5"))
     self.assertEqual(1, Registers.reg_get("$t6"))
Exemplo n.º 3
0
 def test_muldiv(self):
     Registers.clear()
     path = "./test/asm/muldiv.asm"
     Simulator.run_file(path)
     self.assertEqual((0x7F7F7F7F * 0xACDB) >> 32, Registers.reg_get("$t1"))
     self.assertEqual((0x7F7F7F7F * 0xACDB) & 0xFFFFFFFF, Registers.reg_get("$t2"))
     self.assertEqual((0x7F7F7F7F % 0xACDB), Registers.reg_get("$t3"))
     self.assertEqual((0x7F7F7F7F // 0xACDB), Registers.reg_get("$t4"))
Exemplo n.º 4
0
 def test_muldiv(self):
     Registers.clear()
     path = "./test/asm/muldiv.asm"
     Simulator.run_file(path)
     self.assertEqual((0x7f7f7f7f * 0xacdb) >> 32, Registers.reg_get("$t1"))
     self.assertEqual((0x7f7f7f7f * 0xacdb) & 0xffffffff,
                      Registers.reg_get("$t2"))
     self.assertEqual((0x7f7f7f7f % 0xacdb), Registers.reg_get("$t3"))
     self.assertEqual((0x7f7f7f7f // 0xacdb), Registers.reg_get("$t4"))
Exemplo n.º 5
0
 def test_simulate(self):
     Registers.clear()
     path = "./test/asm/sample1.asm"
     Simulator.run_file(path)
     self.assertEqual(468968, Registers.reg_get("$s0"))