|
|
|
@ -15,14 +15,14 @@ class Register: |
|
|
|
bits = self.n_bits |
|
|
|
return value & ((1 << bits) - 1) |
|
|
|
|
|
|
|
def trucate(self): |
|
|
|
def truncate(self): |
|
|
|
self.value = self.truncate_val(self.value) |
|
|
|
|
|
|
|
def set(self, value): |
|
|
|
if value < 0: |
|
|
|
self.value = self.truncate_val(abs(value), self.n_bits - 1) |
|
|
|
self.negate() |
|
|
|
self.trucate() |
|
|
|
self.truncate() |
|
|
|
|
|
|
|
def get(self): |
|
|
|
return self.value |
|
|
|
@ -47,7 +47,7 @@ class Register: |
|
|
|
return "{} ({})".format(self, self.n_bits) |
|
|
|
|
|
|
|
|
|
|
|
class Acumulator(Register): |
|
|
|
class Accumulator(Register): |
|
|
|
negative_flag = False |
|
|
|
zero_flag = False |
|
|
|
carry_flag = False |
|
|
|
@ -72,7 +72,7 @@ class Acumulator(Register): |
|
|
|
self.value += register.value |
|
|
|
if self.value.bit_length() > self.n_bits: |
|
|
|
self.carry_flag = True |
|
|
|
self.trucate() |
|
|
|
self.truncate() |
|
|
|
self.set_flags() |
|
|
|
|
|
|
|
def sub(self, register: Register): |
|
|
|
|