operations.py 文件源码

python
阅读 36 收藏 0 点赞 0 评论 0

项目:PicoSim 作者: Vadman97 项目源码 文件源码
def exec(self, proc: Processor):
        self.proc = proc

        first_bits = self.proc.memory.REGISTERS[self.register].values
        if not self.literal:
            # look up the register binary
            second_bits = self.proc.memory.REGISTERS[self.argument].values
        else:
            # retrieve the converted literal as binary
            second_bits = self.argument.values

        result = self.operator(first_bits, second_bits)
        # add the carry if needed
        if self.operator is ripple_add_c or ripple_sub_c:
            self.zero_bits[len(self.zero_bits) - 1] = self.proc.external.carry
            result = ripple_add(result, self.zero_bits)

        self.proc.memory.REGISTERS[self.register].values = result

        # increment pc
        self.proc.manager.next()


# 67% slower than ArithmeticOperation
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号