def test_byt_directives_char(self): a = Asm('''A .BYT 'A' TRP 0''', 'asm_test_int_directives.log', 16, True) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '41000 0000 0000 0000', 'Hex dump on int directives failed') self.assert_(not ret, 'Ret code on int directives test failed.')
def test_jmp(self): a = Asm(''' JMP END END TRP 0''', 'asm_test_instr_jmp.log', 24, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '1000 c000 0000 0000 0000 0000', 'Hex dump on JMP failed') self.assert_(not ret, 'Ret code on JMP test failed.') self.assert_(os.stat("logs/asm_test_instr_jmp.log").st_size == 0)
def test_cmp(self): a = Asm(''' CMP R1 R2 TRP 0''', 'asm_test_instr_cmp.log', 28, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '14000 1000 2000 0000 0000 0000 0000', 'Hex dump on CMP failed') self.assert_(not ret, 'Ret code on CMP test failed.') self.assert_(os.stat("logs/asm_test_instr_cmp.log").st_size == 0)
def test_and(self): a = Asm(''' AND R1 R2 TRP 0''', 'asm_test_instr_and.log', 28, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '12000 1000 2000 0000 0000 0000 0000', 'Hex dump on AND failed') self.assert_(not ret, 'Ret code on AND test failed.') self.assert_(os.stat("logs/asm_test_instr_and.log").st_size == 0)
def test_adi(self): a = Asm(''' ADI R1 5 TRP 0''', 'asm_test_instr_adi.log', 28, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == 'e000 1000 5000 0000 0000 0000 0000', 'Hex dump on ADI failed') self.assert_(not ret, 'Ret code on ADI test failed.') self.assert_(os.stat("logs/asm_test_instr_adi.log").st_size == 0)
def test_sub(self): a = Asm(''' SUB R1 R2 TRP 0''', 'asm_test_instr_sub.log', 28, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == 'f000 1000 2000 0000 0000 0000 0000', 'Hex dump on SUB failed') self.assert_(not ret, 'Ret code on SUB test failed.') self.assert_(os.stat("logs/asm_test_instr_sub.log").st_size == 0)
def test_mov(self): a = Asm(''' MOV R1 R2 END TRP 0''', 'asm_test_instr_mov.log', 36, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '7000 1000 2000 0000 0000 0000 0000 0000 0000', 'Hex dump on MOV failed') self.assert_(not ret, 'Ret code on MOV test failed.') self.assert_(os.stat("logs/asm_test_instr_mov.log").st_size == 0)
def test_bnz(self): a = Asm(''' JMP END BNZ R1 END END TRP 0''', 'asm_test_instr_bnz.log', 36, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '1000 18000 0000 3000 1000 18000 0000 0000 0000', "Hex dump on BNZ failed") self.assert_(not ret, 'Ret code on BNZ test failed.') self.assert_(os.stat('logs/asm_test_instr_bnz.log').st_size == 0)
def test_lda(self): a = Asm(''' ONE .BYT 0 LDA R1 ONE TRP 0''', 'asm_test_instr_lda.log', 28, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '0800 0100 0000 0000 0000 0000 0000', 'Hex dump on LDA failed') self.assert_(not ret, 'Ret code on LDA test failed.') self.assert_(os.stat("logs/asm_test_instr_lda.log").st_size == 0)
def test_stb(self): a = Asm(''' ONE .INT 0 STB R1 ONE TRP 0''', 'asm_test_instr_stb.log', 32, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '0000 b000 1000 0000 0000 0000 0000 0000', 'Hex dump on STB failed') self.assert_(not ret, 'Ret code on STB test failed.') self.assert_(os.stat("logs/asm_test_instr_stb.log").st_size == 0)
def test_str(self): a = Asm(''' ONE .BYT 0 STR R1 ONE TRP 0''', 'asm_test_instr_str.log', 36, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '0900 0100 0000 0000 0000 0000 0000 0000 0000', 'Hex dump on STR failed') self.assert_(not ret, 'Ret code on STR test failed.') self.assert_(os.stat("logs/asm_test_instr_str.log").st_size == 0)
def test_brz(self): a = Asm(''' JMP END BRZ R1 END END TRP 0''', 'asm_test_instr_brz.log', 36, False) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '1000 18000 0000 6000 1000 18000 0000 0000 0000', 'Hex dump on BRZ failed') self.assert_(not ret, 'Ret code on BRZ test failed.') self.assert_(os.stat("logs/asm_test_instr_brz.log").st_size == 0)
def test_byt_directives(self): a = Asm( '''LETTER .BYT 65 ARR .BYT 65 .BYT 66 .BYT 67 TRP 0''', 'asm_test_byt_directives.log', 24, True) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '41414243 0000 0000 0000 0000 0000', 'Hex dump on byte directives failed') self.assert_(not ret, 'Ret code on byte directives test failed.')
def test_int_directives(self): a = Asm( '''ONE .INT 65 ARR .INT 65 .INT 66 .INT 67 TRP 0''', 'asm_test_int_directives.log', 32, True) hex = a.execute().hexdump ret = a.retcode self.assert_(hex == '41000 41000 42000 43000 0000 0000 0000 0000', 'Hex dump on int directives failed') self.assert_(not ret, 'Ret code on int directives test failed.')
def test_stri(self): a = Asm(''' ONE .INT 0 LDR R2 ONE STR R1 (R2) TRP 0''', 'asm_test_instr_stri.log', 44, False) hex = a.execute().hexdump ret = a.retcode self.assert_( hex == '0000 a000 2000 0000 15000 1000 2000 0000 0000 0000 0000', 'Hex dump on STRi failed') self.assert_(not ret, 'Ret code on STRi test failed.') self.assert_(os.stat("logs/asm_test_instr_stri.log").st_size == 0)
def test_ldbi(self): a = Asm(''' ONE .INT 0 LDR R1 ONE LDB R1 (R1) TRP 0''', 'asm_test_instr_ldbi.log', 44, False) hex = a.execute().hexdump ret = a.retcode self.assert_( hex == '0000 a000 1000 0000 18000 1000 1000 0000 0000 0000 0000', 'Hex dump on LDBi failed') self.assert_(not ret, 'Ret code on LDBi test failed.') self.assert_(os.stat("logs/asm_test_instr_ldbi.log").st_size == 0)
def test_proj1(self): f = open('../Archive/proj1.asm', 'r') asml = ''.join(f.readlines()) a = Asm(asml, 'asm_test_proj1.log', 4192, False) hex = a.execute().hexdump ret = a.retcode log = a.log self.assert_( hex == '54796c65 7250616b 2ca201 0002 0003 0004 0005 0006 0002c 100ffffff96 00032 00014 000a 000fffffff4 100a 0003 0005 0000 0003 0000 000a 0003 0006 0000 0003 0000 000a 0003 0004 0000 0003 0000 000a 0003 0007 0000 0003 0000 000a 0003 0008 0000 0003 0000 000a 0003 000a 0000 0003 0000 000a 0003 0000 0000 0003 0000 000a 0003 0001 0000 0003 0000 000a 0003 0002 0000 0003 0000 000a 0003 0003 0000 0003 0000 000a 0003 0004 0000 0003 0000 000a 0003 0009 0000 0003 0000 0000 0003 0000 000a 0000 00023 000a 0001 00027 000d 0000 0001 0007 0003 0000 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0001 0002b 000d 0000 0001 0007 0003 0000 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0001 0002f 000d 0000 0001 0007 0003 0000 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0001 00033 000d 0000 0001 0007 0003 0000 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0001 0001b 000d 0000 0001 0007 0003 0000 0000 0001 0000 000a 0003 0009 0000 0003 0000 0000 0003 0000 000a 0001 000b 000a 0002 000f 00010 0001 0002 0007 0003 0001 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0002 00013 00010 0001 0002 0007 0003 0001 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0002 00017 00010 0001 0002 0007 0003 0001 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0002 0001b 00010 0001 0002 0007 0003 0001 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 000a 0002 0001f 00010 0001 0002 0007 0003 0001 0000 0001 0000 000a 0003 0009 0000 0003 0000 0000 0003 0000 0007 0003 0000 000a 0004 00023 00011 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0000 000a 0004 00027 00011 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0000 000a 0004 0002b 00011 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0000 000a 0004 0002f 00011 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0000 000a 0004 00033 00011 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0000 000a 0004 0001b 00011 0003 0004 0000 0001 0000 000a 0003 0009 0000 0003 0000 0000 0003 0000 0007 0003 0001 000a 0004 00037 000f 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0001 000a 0004 000f 000f 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0001 000a 0004 0001b 000f 0003 0004 0000 0001 0000 000a 0003 000a 0000 0003 0000 0000 0003 0000 0007 0003 0001 000a 0004 00033 000f 0003 0004 0000 0001 0000 000a 0003 0009 0000 0003 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000', 'Hex dump on Proj1Test failed') self.assert_(ret == 0 or ret == None, 'Ret code on Proj1Test test failed.') self.assert_(log == [ 'Park, Tyler\n', '\n', '450 500 520 530 535\n', '\n', '2 6 24 120 720\n', '\n', '1 3 10 26 53 107\n', '\n', '220 718 715 710\n' ])