예제 #1
0
def traceback_register(context, reg_spec):
    instructions, index, memory = context
    index = index - 1
    while index >= 0:
        try:
            instruction = instructions[index]
            if reg_spec in instruction.get_modified_regs():
                return instruction.get_result_value(
                    (instructions, index, memory), reg_spec)

            index -= 1
        except NotImplementedError:
            print instruction.mnemonic, 'is not supported yet'
            return values.UnknownValue(reg_spec)
    return values.UnknownValue(reg_spec)
예제 #2
0
 def __init__(self):
     self.gp = [
         values.UnknownValue(reg_name) for reg_name in self.REGISTERS
     ]
예제 #3
0
 def read_memory(self, base, offset, size):
     return values.UnknownValue(None)
예제 #4
0
 def read_register(self, reg_spec):
     self.read_places.add(reg_spec)
     return values.UnknownValue(None)