声明初始化数据的语法是什么,如:
初始化全局数组
例如。int [] arr = {1,2,3,4,5}
“你好世界\n”
发布于 2020-10-28 18:10:46
Hack汇编语言没有直接这样做的便利,因为它只装配程序指令,程序内存是只读的,不能被Hack机器指令读取,除了加载常量操作的简并情况之外。
因此,您要做的是编写代码,使用加载常量/存储操作序列初始化您的ram。这有点棘手,因为您只能加载15位常量。
当我面对这个问题时,我编写了一个python脚本来生成我需要的汇编代码。这里有一个python代码片段,它生成代码将任意值"word“存储到内存位置"base”中,这可能对您有帮助。
if word >= 32768:
if word == 65535:
print "\t@" + "{:05}".format(base) + "\t\t// " + str(word)
print "\tM = -1"
else:
print "\tD = -1\t\t// " + str(word)
print "\t@" + "{:05}".format(65535-word)
print "\tD = D - A"
print "\t@" + "{:05}".format(base)
print "\tM = D"
else:
if word == 0:
print "\t@" + "{:05}".format(base) + "\t\t// " + str(word)
print "\tM = 0"
else:
print "\t@" + "{:05}".format(word) + "\t\t// " + str(word)
print "\tD = A"
print "\t@" + "{:05}".format(base)
print "\tM = D"
base += 1https://stackoverflow.com/questions/64565797
复制相似问题