You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
725 B

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