我目前正在尝试完成 Nand to Tetris 课程(Fill.asm
)第4章中找到的项目。但是,汇编程序给出了以下错误:
“第3行,表达预期”
我不确定我做错了什么......但下面是我的代码片段:
@i
M=1
@sum
M=8192
(END)
@END
0,JMP
有谁能告诉我为什么我在第3行(@sum
)上收到此错误?
答案 0 :(得分:4)
我不知道为什么第3行出现错误,但是你不能直接在第4行的内存地址上设置一个值。你可以像第2行那样强制ALU中的“1” ,但没有先输入它就无法强制使用“8192”。首先必须将“8192”的值分配给A寄存器,然后将A寄存器存储到D寄存器,然后选择存储器地址,然后将D寄存器存储在那里。
答案 1 :(得分:0)
您看到的错误是因为您无法将值“8192”直接放入@sum。
以下是我为解决此问题而编写的代码:
@8192 // number of pixels on a screen divided by 16-bit address (256 x 512 / 16)
D=A // D = total number of pixels
@sum
M=D // assigns sum with value of 8192