将“让静态2 =参数1”转换为VM代码

时间:2019-07-29 20:18:58

标签: jvm virtual-machine jvm-arguments high-level nand2tetris

将“让静态2 =参数1”转换为VM代码。

VM代码(答案):

  

推送参数1

     

弹出静态2

我的问题

我们不是忘记了let。我们不应该将另一个参数1推入堆栈,然后也将其弹出到本地2吗?为了保留“本地类型”。

https://www.coursera.org/learn/nand2tetris2/lecture/z1wbL/unit-1-3-vm-abstraction-memory-segments enter image description here

1 个答案:

答案 0 :(得分:0)

不确定为什么要在本地弹出2.在杰克中,let语句也可以用于字段变量,而不必一定用于局部变量。

推送参数1会将值放在堆栈顶部12的参数段中的索引1中。

然后,将堆栈中的最高值弹出到静态2中,该值在图片中高亮显示