diff --git a/register.py b/register.py index 2e6b700..67deaa5 100644 --- a/register.py +++ b/register.py @@ -10,16 +10,19 @@ class Register: self.value = 0 Register.registers.append(self) - def truncate(self, value, bits=None): + def truncate_val(self, value, bits=None): if bits is None: bits = self.n_bits - return value & (1 << bits - 1) + return value & ((1 << bits) - 1) + + def trucate(self): + self.value = self.truncate_val(self.value) def set(self, value): if value < 0: - self.value = self.truncate(abs(value), self.n_bits - 1) + self.value = self.truncate_val(abs(value), self.n_bits - 1) self.negate() - self.value = self.truncate(value) + self.trucate() def get(self): return self.value