def eval_AS(a, w): w = to_signed(w,32) i = a if i >= 0: return to_signed(w >> i, 32) else: j = abs(i) return to_signed(w << j, 32)
def eval_LS(a, w): i = to_signed(a, 32) if i >= 0: return w >> i else: j = abs(i) return w << j
def eval_LT(w1, w2): w1_signed = to_signed(w1, 32) w2_signed = to_signed(w2, 32) return w1_signed < w2_signed
def read(self, memory, process): self.l_val = to_signed(self.value + process.PC, 12) return memory[self.l_val]
def write(self, memory, process, value): memory[to_signed(self.value, 12) + process.PC] = value
def read(self, memory, process): return memory[to_signed(self.value, 12) + process.PC]
def read(self, memory, process): a = to_signed(self.value, 12) b = to_signed(a, 32) return b