在哈克程序集代码中初始化数组



声明初始化数据的语法是什么,例如:

  • 用hack汇编语言初始化全局数组

例如。int[]arr={1,2,3,4,5}

  • 初始化字符串文字

";你好世界;

Hack汇编语言没有直接执行此操作的功能,因为它只汇编程序指令,并且程序内存是只读的,Hack机器指令不可读,除了负载常数操作的退化情况。

因此,您要做的是编写代码,使用一系列加载常量/存储操作初始化您的ram。这变得有点棘手,因为您只能加载15位常量。

当我遇到这个问题时,我编写了一个python脚本来生成我需要的汇编代码。这里是生成代码以存储任意值"的python代码片段;单词";进入存储器位置";基本";这可能会对你有所帮助。

if word >= 32768:
if word == 65535:
print "t@" + "{:05}".format(base) + "tt// " + str(word)
print "tM = -1"
else:
print "tD = -1tt// " + 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) + "tt// " + str(word)
print "tM = 0"
else:
print "t@" + "{:05}".format(word) + "tt// " + str(word)
print "tD = A"
print "t@" + "{:05}".format(base)
print "tM = D"
base += 1

最新更新