Вне сегмента ошибка с сценарием по умолчанию Эмулятор виртуальной машины Nand2Tetris - PullRequest
0 голосов
/ 02 ноября 2018

При попытке запустить тестовые сценарии и тестовые программы ВМ в эмуляторе ВМ, всякий раз, когда программа пытается получить доступ к локальному регистру, эмулятор выдает ошибку Out of segment space. Даже работает очень простой код, такой как:

    function Main.main 1
    push constant 5
    pop local 0

эмулятор все равно выдает Out of segment space error. Несмотря на то, что я инициализирую локальные регистры с 1 в конце функциональной строки, в разделе «local» эмулятора не отображаются регистры, показывающие локальные регистры, и при попытке перехода к локальному 0 возникает ошибка Out of segment space. выбрасывается, это означает, что недостаточно места для всплытия на локальный 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.

Что заставляет эмулятор выдавать эту ошибку?

...