Example #1
0
    '''

    i_instruction = I_Format(convertor.hexadecimal_to_binary(instruction))
    r_instruction = R_Format(convertor.hexadecimal_to_binary(instruction))
    if r_instruction.op == 0:
        function = r_function_code_dict.get(r_instruction.funct)
    else:
        function = i_op_code_dict.get(i_instruction.op)

    if (function == "Add"):
        destination = "$" + str(r_instruction.rd)
        left_value = "$" + str(r_instruction.rs)
        right_value = "$" + str(r_instruction.rt)
        value = registers.get_register_value(
            left_value) + registers.get_register_value(right_value)
        registers.store_register_value(destination, value)
        print("add " + destination + ", " + left_value + ", " + right_value)

    if (function == "Sub"):
        destination = "$" + str(r_instruction.rd)
        left_value = "$" + str(r_instruction.rs)
        right_value = "$" + str(r_instruction.rt)
        value = registers.get_register_value(
            left_value) - registers.get_register_value(right_value)
        registers.store_register_value(destination, value)
        print("sub " + destination + ", " + left_value + ", " + right_value)
    if (function == "And"):
        destination = "$" + str(r_instruction.rd)
        left_value = "$" + str(r_instruction.rs)
        right_value = "$" + str(r_instruction.rt)
        left_value_binary = convertor.decimal_to_binary_twos_complement(