NAND2Tetris VM 翻译器
NAND2Tetris VM Translator
如果指向堆栈中下一个位置的指针在Ram[SP]/[0]中被破坏,我如何在hack中指示计算机打开该位置?
我试过了
@0
D=M
@D
但它没有打开存储在 Ram[0] 中的地址
如何让它访问存储在 Ram[0] 中的 ram 地址
谢谢
您使用 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 不是一个好主意。
如果指向堆栈中下一个位置的指针在Ram[SP]/[0]中被破坏,我如何在hack中指示计算机打开该位置? 我试过了
@0
D=M
@D
但它没有打开存储在 Ram[0] 中的地址 如何让它访问存储在 Ram[0] 中的 ram 地址 谢谢
您使用 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 不是一个好主意。