本文整理汇总了Python中Memory.print_obj方法的典型用法代码示例。如果您正苦于以下问题:Python Memory.print_obj方法的具体用法?Python Memory.print_obj怎么用?Python Memory.print_obj使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Memory
的用法示例。
在下文中一共展示了Memory.print_obj方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: exec_jalr
# 需要导入模块: import Memory [as 别名]
# 或者: from Memory import print_obj [as 别名]
def exec_jalr(inst):
Memory.write_plain(Registers.read_fp(), read_pc()) # set return address
func_obj = Memory.get_obj(Registers.get_reg(inst['rd']))
if func_obj['type'] == 7: # panel.readInt()
num = int(raw_input('Please enter an integer.\n'))
num_addr = Memory.new_int(num)
Memory.write_plain(Registers.read_fp() - 12, num_addr)
inc_pc(4)
elif func_obj['type'] == 8: # panel.readStr()
string = raw_input('Please enter an string.\n')
str_addr = Memory.new_str(string)
Memory.write_plain(Registers.read_fp() - 12, str_addr)
inc_pc(4)
elif func_obj['type'] == 9: # panel.show()
arg = Memory.read_plain(Registers.read_fp() - 16)
Memory.print_obj(arg)
inc_pc(4)
else:
assert func_obj['type'] == 4
func_addr = Registers.get_reg(inst['rd'])
address_field = Memory.get_field(func_addr, Constants.get_str('address'))
address_addr = Memory.get_prop(address_field)['value']
address = Memory.get_int(address_addr)
Memory.write_plain(Registers.read_fp(), read_pc() + 4)
write_pc(address)
示例2: exec_getfield
# 需要导入模块: import Memory [as 别名]
# 或者: from Memory import print_obj [as 别名]
def exec_getfield(inst):
name_addr = Registers.get_reg(inst['rt'])
obj_addr = Registers.get_reg(inst['rs'])
while True:
try:
field = Memory.get_field(obj_addr, name_addr)
except Exception as e:
Memory.print_obj(obj_addr)
Memory.print_obj(name_addr)
raise e
if not field: # The field cannot be found.
ctor_addr = Memory.get_field(obj_addr, Constants.get_str('constructor'))
if not ctor_addr: # There is no constructor field
new_field = Memory.new_field(Registers.get_reg(inst['rs']), name_addr)
Memory.set_prop(new_field, value=Memory.new_obj())
res = Memory.get_prop(new_field)
break
ctor_obj = Memory.get_prop(ctor_addr)['value']
proto_addr = Memory.get_field(ctor_obj, Constants.get_str('prototype'))
if not proto_addr: # There is no prototype field
new_field = Memory.new_field(Registers.get_reg(inst['rs']), name_addr)
Memory.set_prop(new_field, value=Memory.new_obj())
res = Memory.get_prop(new_field)
break
obj_addr = Memory.get_prop(proto_addr)['value'] # Find field in the prototype
else:
res = Memory.get_prop(field)
break
Registers.set_reg(inst['rd'], res['value'])
inc_pc(4)
"""