class Register: def __init__(self, n_bits, name): self.n_bits = n_bits self.name = name self.value = 0 def truncate(self, value, bits=None): if bits is None: bits = self.n_bits return value & (1 << bits - 1) def set(self, value): if value < 0: self.value = self.truncate(abs(value), self.n_bits - 1) self.negate() self.value = self.truncate(value) def get(self): return self.value def negate(self): self.value = ~self.value + 1 class Acumulator(Register): positive_flag = False negative_flag = False zero_flag = False carry = False def add(self, register): pass