예제 #1
0
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)
예제 #2
0
def eval_LS(a, w):
    i = to_signed(a, 32)
    if i >= 0:
        return w >> i
    else:
        j = abs(i)
        return w << j
예제 #3
0
def eval_LT(w1, w2):
    w1_signed = to_signed(w1, 32)
    w2_signed = to_signed(w2, 32)
    return w1_signed < w2_signed
예제 #4
0
 def read(self, memory, process):
     self.l_val = to_signed(self.value + process.PC, 12)
     return memory[self.l_val]
예제 #5
0
 def write(self, memory, process, value):
     memory[to_signed(self.value, 12) + process.PC] = value
예제 #6
0
 def read(self, memory, process):
     return memory[to_signed(self.value, 12) + process.PC]
예제 #7
0
 def read(self, memory, process):
     a = to_signed(self.value, 12)
     b = to_signed(a, 32)
     return b