将“让静态2 =参数1”转换为VM代码。
VM代码(答案):
推送参数1
弹出静态2
我的问题
我们不是忘记了let
。我们不应该将另一个参数1推入堆栈,然后也将其弹出到本地2吗?为了保留“本地类型”。
https://www.coursera.org/learn/nand2tetris2/lecture/z1wbL/unit-1-3-vm-abstraction-memory-segments
答案 0 :(得分:0)
不确定为什么要在本地弹出2.在杰克中,let语句也可以用于字段变量,而不必一定用于局部变量。
推送参数1会将值放在堆栈顶部12的参数段中的索引1中。
然后,将堆栈中的最高值弹出到静态2中,该值在图片中高亮显示