默认脚本VM模拟器Nand2Tetris出现段外错误

时间:2018-11-02 02:03:09

标签: nand2tetris

当尝试在VM仿真器中运行测试脚本和测试VM程序时,只要程序尝试弹出到本地寄存器,仿真器都会引发 function Main.main 1 push constant 5 pop local 0 错误。即使运行非常简单的代码,例如:

Out of segment space error

模拟器仍然抛出Out of segment space。即使我在功能行末尾用1初始化本地寄存器,模拟器的“ local”部分中也没有寄存器显示本地寄存器,并且当尝试弹出本地0时,{{1} }引发错误,这意味着没有足够的空间可以弹出到本地0。

即使尝试使用此.tst代码运行代码,也是如此:

    load Main.vm,
    output-file Main.out,
    output-list sp%D2.4.2 CurrentFunction%S1.15.1 Argument[0]%D3.6.3 
    RAM[256]%D2.6.2;

    set RAM[1] 700;
    set sp 256;
    repeat 7 {
        vmstep;
    }
    output;

我通过将RAM [1]设置为寄存器号来定义本地段的开始,仿真器仍然抛出Out of segment space error

是什么导致模拟器引发此错误?

0 个答案:

没有答案