Exemple #1
0
    def execute(self):
        instruction = self.cpu.pc.next_instruction
        registers = instruction.get_registers()
        print(instruction)

        rd = registers['rd']

        rs = registers['rs']
        print("Read the register 1: {}{}[{}]".format(rs, ' '*25, to_integer(rs)))

        rt = registers['rt']
        print("Read the register 2: {}{}[{}]".format(rt, ' '*25, to_integer(rt)))

        register_data1 = self.cpu.registers.get_value(rs)
        print("Read data 1: {}".format(register_data1))

        register_data2 = self.cpu.registers.get_value(rt)
        print("Read data 2: {}".format(register_data2))

        print("ALU-in-1:    {}{}[{}]".format(register_data1, ' '*6, to_decimalC2(register_data1)))
        print("ALU-in-2:    {}{}[{}]".format(register_data2, ' '*6, to_decimalC2(register_data2)))

        alu_result = self.cpu.alu.makeAnd(register_data1, register_data2)
        print("ALU-result:  {}{}[{}]".format(alu_result, ' '*6, to_decimalC2(alu_result)))

        self.cpu.registers.set_value(rd, alu_result)
        print("Write data:  {}".format(alu_result))

        print("Write register: {}{}[{}]".format(rd, ' '*30, to_integer(rd)))
        
        print("{}".format("-" * 64))
        print("\n\n")
Exemple #2
0
    def execute(self):
        instruction = self.cpu.pc.next_instruction
        registers = instruction.get_registers()
        offset = instruction.get_offset()
        print(instruction)

        rs = registers['rs']
        print("Read the register 1:{}{}{}[{}]".format(' '*20, rs, ' '*6, to_integer(rs)))

        rt = registers['rt']
        print("Read the register 2:{}{}{}[{}]".format(' '*20, rt, ' '*6, to_integer(rt)))

        register_data1 = self.cpu.registers.get_value(rs)
        print("Read data 1: {}".format(register_data1))

        register_data2 = self.cpu.registers.get_value(rt)
        print("Read data 2: {}".format(register_data2))

        print("ALU-in-1:    {}{}[{}]".format(register_data1, ' '*6, to_decimalC2(register_data1)))
        print("ALU-in-2:    {}{}[{}]".format(offset, ' '*6, to_decimalC2(offset)))

        alu_result = self.cpu.alu.makeSum(register_data1, offset)
        print("ALU-result:  {}{}[{}]".format(alu_result, ' '*6, to_decimalC2(alu_result)))

        print("Address:     {}".format(alu_result))

        self.cpu.memory.set_value(alu_result, register_data2)
        print("Write data:  {}{}[{}]".format(register_data2, ' '*6, to_decimalC2(register_data2)))
        
        print("{}".format("-" * 64))
        print("\n\n")
Exemple #3
0
 def parse_offers(self, offers):
     offer_data_path = './UnitPriceDetail/TotalAmount/SimpleCurrencyPrice'
     offer_data = {}
     for o in offers:
         offer_data[o.attrib['OfferItemID']] = {
             'fee': {
                 'amount': to_integer(o.find(offer_data_path).text.replace('.', '')),
                 'currency_code': o.find(offer_data_path).attrib['Code'].lower(),
             },
             'taxes': {
                 'amount': None,
                 'currency_code': None,
             }
         }
     return offer_data
Exemple #4
0
 def test_string_must_be_converted_to_integer_or_return_original_value(
         self):
     self.assertEqual(1, to_integer('1'))
     self.assertEqual('test', to_integer('test'))