声明初始化数据的语法是什么,比如:
- 在 hack 汇编语言中初始化一个全局数组?
前任。int [] arr = {1, 2, 3, 4, 5}
- 初始化字符串文字?
“你好世界\n”
声明初始化数据的语法是什么,比如:
前任。int [] arr = {1, 2, 3, 4, 5}
“你好世界\n”
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 += 1