nand 2 tetris ASM“表达预期”

时间:2012-11-30 22:23:34

标签: assembly nand2tetris

我目前正在尝试完成 Nand to Tetris 课程(Fill.asm)第4章中找到的项目。但是,汇编程序给出了以下错误:

  

“第3行,表达预期”

我不确定我做错了什么......但下面是我的代码片段:

@i
M=1
@sum
M=8192
(END)
@END
0,JMP

有谁能告诉我为什么我在第3行(@sum)上收到此错误?

2 个答案:

答案 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