0

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

虚拟机代码(答案):

推论 1

流行静态2

我的问题

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

https://www.coursera.org/learn/nand2tetris2/lecture/z1wbL/unit-1-3-vm-abstraction-memory-segments 在此处输入图像描述

4

1 回答 1

0

不知道为什么要弹出太局部 2. 在 jack 中,let 语句也可以用于字段变量,而不必一定用于局部变量。

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

然后将堆栈中的顶部值弹出到静态 2 中,该值在您的图片中突出显示

于 2020-04-04T09:25:52.983 回答