添加一些cpu操作
This commit is contained in:
17
node_run.py
17
node_run.py
@@ -135,7 +135,6 @@ class file(object):
|
||||
self.unname_union_index=0
|
||||
self.unname_enum_index=0
|
||||
self.cpu=cpu(0x1000_0000,1*1024*1024,0x2000_0000,1*1024*1024)
|
||||
self.cpu_mem_ptr=0x2000_0000
|
||||
self.stack:list[variable]=[]
|
||||
def variable_type_check(self,attr:list[str]):
|
||||
for item in self.variable_type_list:
|
||||
@@ -213,18 +212,18 @@ class file(object):
|
||||
if(len(attr)==1):
|
||||
for item in self.variable_type_alias:
|
||||
if(item.alias==attr[0]):
|
||||
self.stack.append(variable(name,item.attr,self.cpu_mem_ptr))
|
||||
self.cpu_mem_ptr+=item.attr.get_size()
|
||||
addr=self.cpu.create_var(item.attr.get_size())
|
||||
self.stack.append(variable(name,item.attr,addr))
|
||||
return
|
||||
for item in self.variable_type_list:
|
||||
if(item.eq(attr)):
|
||||
self.stack.append(variable(name,item,self.cpu_mem_ptr))
|
||||
self.cpu_mem_ptr+=item.get_size()
|
||||
def modify_variable(self,name:str,value):
|
||||
addr=self.cpu.create_var(item.get_size())
|
||||
self.stack.append(variable(name,item,addr))
|
||||
def set_variable(self,name:str,value,member_stack:list[str]=[]):
|
||||
for item in self.stack:
|
||||
if(item.name==name):
|
||||
addr,size=item.value()
|
||||
cpu.set_value(addr,size,value)
|
||||
addr,size=item.member_value(member_stack)
|
||||
self.cpu.set_value(addr,size,value)
|
||||
return
|
||||
raise Exception(f"符号名称不存在 {name}")
|
||||
def get_variable(self,name:str,member_stack:list[str]=[]):
|
||||
@@ -232,7 +231,7 @@ class file(object):
|
||||
if(item.name==name):
|
||||
addr,size=item.member_value(member_stack)
|
||||
print(f"addr={addr},size={size}")
|
||||
return
|
||||
return self.cpu.get_value(addr,size)
|
||||
|
||||
def __str__(self) -> str:
|
||||
ret=string()
|
||||
|
Reference in New Issue
Block a user