Exemplo n.º 1
0
def main(args):
    instruction = [args.instruction]
    assembly_file = args.file
    ouput_file = args.output
    start_addr = args.start
    if start_addr == None:
        start_addr = 0
    if assembly_file != None:
        asm = open(assembly_file)
        lines = asm.readlines()
        if start_addr == None:
            start_addr = 0x80001000
    else:
        lines = instruction

    parser = assembly_parser(start_addr,
                             instruction_table,
                             register_table,
                             pseudoinstruction_table,
                             4,
                             output_file=ouput_file)
    parser.first_pass(lines)
    parser.second_pass(lines)
    if args.check:
        valid = open('verify.txt')
        valid_hex = valid.readlines()
        parser.output_array
        print('--' * 100, 'verifying')
        for i, valid_inst in zip(range(len(valid_hex)), valid_hex):
            inst = parser.output_array[i].split(': 0x')[1]
            print(valid_inst, inst)
            if inst != valid_inst:
                print('invalid code')
Exemplo n.º 2
0
def main(argv):
    files = argv
    if len(files) is not 1:
        usage()
    for filename in files:
        asm           = open(filename)
        lines         = asm.readlines()
        parser        = assembly_parser(64, instruction_table, register_table, pseudoinstruction_table,4)
        parser.first_pass(lines)
        parser.second_pass(lines)
Exemplo n.º 3
0
def main(argv):
    files = argv
    if len(files) is not 1:
        usage()
    for filename in files:
        asm           = open(filename)
        lines         = asm.readlines()
        parser        = assembly_parser(64, instruction_table, register_table,4)
        parser.first_pass(lines)
        parser.second_pass(lines)
Exemplo n.º 4
0
def main(argv):
    files = argv
    if len(files) <2:
        usage()
    files = argv[0:len(files)-1]

    f= open(argv[len(files)],'w')
    sys.stdout = f


    for filename in files:
        asm           = open(filename)
        lines         = asm.readlines()
        parser        = assembly_parser(64, instruction_table, register_table, pseudoinstruction_table,4)      
	parser.first_pass(lines)
        parser.second_pass(lines)


    f.close()
Exemplo n.º 5
0
def export_2():
    file = tkFileDialog.asksaveasfile(mode='w')
    if file != None:
    # slice off the last character from get, as an extra return is added
        s = file.name
        file.close()
        data = input_asm.get('1.0', END)
 
        f= open(s,'w')
        #print s
        sys.stdout = f
        lines = data.splitlines()
        inst_no = len(lines)
        
        parser        = assembly_parser(64, instruction_table, register_table, pseudoinstruction_table,4)      
        parser.first_pass(lines)
        parser.second_pass(lines)
        for i in range(inst_no,256+1):
        	f.write('00000000\n')          
        f.close()
        sys.stdout = sys.__stdout__
Exemplo n.º 6
0
def export_inst():
    #file = tkFileDialog.asksaveasfile(mode='w')
    #if file != None:
    # slice off the last character from get, as an extra return is added
        #s = file.name
        #file.close()
        data = input_asm.get('1.0', END)
        s='inst_mem.txt'
        f= open(s,'w')
        sys.stdout = f
        lines = data.splitlines()
        inst_no = len(lines)
        
        parser        = assembly_parser(64, instruction_table, register_table, pseudoinstruction_table,4)      
        parser.first_pass(lines)
        parser.second_pass(lines)

        for i in range(inst_no,256+1):
        	f.write('00000000\n')        
        f.close()
        sys.stdout = sys.__stdout__
	tkMessageBox.showinfo("Export", "Done exporting instruction memory!")