本文整理汇总了Python中memory.Memory.set_pointer_value方法的典型用法代码示例。如果您正苦于以下问题:Python Memory.set_pointer_value方法的具体用法?Python Memory.set_pointer_value怎么用?Python Memory.set_pointer_value使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类memory.Memory
的用法示例。
在下文中一共展示了Memory.set_pointer_value方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from memory import Memory [as 别名]
# 或者: from memory.Memory import set_pointer_value [as 别名]
#.........这里部分代码省略.........
return self.get_local_value(address)
elif address >= MemoryMap.TEMP_INT_BASE and address < MemoryMap.POINTER_BASE:
return self.get_temp_value(address)
elif address >= MemoryMap.INT_CONSTANT_BASE and address < MemoryMap.INT_BASE:
return self.get_constant_value(address)
elif address >= MemoryMap.POINTER_BASE:
return self.get_pointer_value(address)
elif address == MemoryMap.FALSE_CONSTANT:
return False
elif address == MemoryMap.TRUE_CONSTANT:
return True
else:
print('Error de ejecucion: Direccion virtual desconocida')
exit(1)
return None
else:
return self.get_param_value(address)
# La función set_value recibe una dirección y un valor. A partir de esta dirección, se
# decide si es una variable global, local, temporal o constante y de aquí llama
# a su método correspondiente. Si la dirección es de una variable constante, marca
# error por dirección invalida
def set_value(self, address, value):
if address >= MemoryMap.INT_BASE and address < MemoryMap.LOCAL_INT_BASE:
return self.set_global_value(address, value)
elif address >= MemoryMap.LOCAL_INT_BASE and address < MemoryMap.TEMP_INT_BASE:
return self.set_local_value(address, value)
elif address >= MemoryMap.TEMP_INT_BASE and address < MemoryMap.POINTER_BASE:
return self.set_temp_value(address, value)
elif address >= MemoryMap.INT_CONSTANT_BASE and address < MemoryMap.INT_BASE:
print('Error de ejecucion: Direccion virtual no valida')
return None
elif address >= MemoryMap.POINTER_BASE:
return self.set_pointer_value(address, value)
elif address == MemoryMap.FALSE_CONSTANT:
print('Error de ejecucion: Direccion virtual no valida')
return None
elif address == MemoryMap.TRUE_CONSTANT:
print('Error de ejecucion: Direccion virtual no valida')
return None
else:
print('Error de ejecucion: Direccion virtual no valida')
return None
# La función get_global_value recibe una dirección. Con esta dirección se checa
# si es una dirección de una variable entera, flotante, string o booleana,
# y se procede a pedir el valor a la memoria global con ese tipo
def get_global_value(self, address):
if address >= MemoryMap.INT_BASE and address < MemoryMap.FLOAT_BASE:
return self.global_memory.get_int_value(address)
elif address >= MemoryMap.FLOAT_BASE and address < MemoryMap.STRING_BASE:
return self.global_memory.get_float_value(address)
elif address >= MemoryMap.STRING_BASE and address < MemoryMap.BOOL_BASE:
return self.global_memory.get_string_value(address)
elif address >= MemoryMap.BOOL_BASE and address < MemoryMap.LOCAL_INT_BASE:
return self.global_memory.get_bool_value(address)
else:
print('Error de ejecucion: Direccion virtual global desconocida')
return None
# La función get_local_value recibe una dirección. Con esta dirección se checa
# si es una dirección de una variable entera, flotante, string o booleana,
# y se procede a pedir el valor a la memoria local con ese tipo
def get_local_value(self, address):
if address >= MemoryMap.LOCAL_INT_BASE and address < MemoryMap.LOCAL_FLOAT_BASE:
return self.get_local_memory().get_int_value(address)