# Toshiba MeP-c4 - Misc unit tests # Guillaume Valadon from miasm2.arch.mep.arch import mn_mep class TestMisc: def test(self): # Disassemble & assemble unit tests unit_tests = [("ADD R1, 2", "6108")] unit_tests += [("JMP 0xC3FA38", "d9c8c3fa")] unit_tests += [("SLT3 R0, R8, R10", "08a2")] unit_tests += [("SB R9, (R4)", "0948")] unit_tests += [("SSARB 3(GP)", "13ec")] unit_tests += [("SWCPI C13, (R2+)", "3d20")] unit_tests += [("ADD3 R2, SP, 0x1C", "421c")] unit_tests += [("SW R7, 0x50(SP)", "4752")] for mn_str, mn_hex in unit_tests: print "-" * 49 # Tests separation # Dissassemble mn_bin = mn_hex.decode("hex") mn = mn_mep.dis(mn_bin, "b") print "dis: %s -> %s" % (mn_hex.rjust(20), str(mn).rjust(20)) assert(str(mn) == mn_str) # dissassemble assertion # Assemble and return all possible candidates instr = mn_mep.fromstring(str(mn), "b") instr.mode = "b" asm_list = [i.encode("hex") for i in mn_mep.asm(instr)] # Print the results print "asm: %s -> %s" % (mn_str.rjust(20), ", ".join(asm_list).rjust(20)) assert(mn_hex in asm_list) # assemble assertion