NAND2俄罗斯方块虚拟机翻译器

Posted

技术标签:

【中文标题】NAND2俄罗斯方块虚拟机翻译器【英文标题】:NAND2Tetris VM Translator 【发布时间】:2016-08-23 10:09:02 【问题描述】:

如果指向堆栈中下一个位置的指针在 Ram[SP]/[0] 中被 raved,我如何指示 hack 中的计算机打开该位置? 我试过了

@0
D=M
@D

但它没有打开存储在 Ram[0] 中的地址 如何让它访问存储在 Ram[0] 中的 ram 地址 谢谢

【问题讨论】:

“打开地址”是什么意思?另外,您将使用 Ram[0] for 的值做什么(将其存储在 RAM 中的其他位置?执行条件跳转?...) 【参考方案1】:

您使用 A/M 寄存器间接通过 ram 位置。

@SP  // loads the A register with the value SP (SP predefined to 0)
A=M  // loads the A register with the contents of MEM[0] (the stack pointer)
D=M  // loads D with the contents of MEM[Stack]

@D 将使用符号位置 D 的内容加载 A 寄存器,这将由汇编器自动分配。 @D(地址)和 D(寄存器)不是一回事,因此使用 @D 不是一个好主意。

【讨论】:

以上是关于NAND2俄罗斯方块虚拟机翻译器的主要内容,如果未能解决你的问题,请参考以下文章

只会C语言编程还要学哪些才能做俄罗斯方块这样的小游戏?

新蜂俄罗斯方块说明书

java的俄罗斯方块代码

《JavaScript100例|01》之javaScript实现俄罗斯方块,唤起了女朋友儿时的回忆!

C++俄罗斯方块

求用JAVA编写俄罗斯方块游戏的源代码