nand 2 tetris Ожидается выражение ASM

В настоящее время я пытаюсь завершить проект из главы 4 курса Nand to Tetris (Fill.asm). Однако ассемблер выдает следующую ошибку:

«В строке 3 ожидается выражение»

Я не уверен, что я делаю неправильно... но ниже приведен фрагмент кода, который у меня есть:

@i
M=1
@sum
M=8192
(END)
@END
0,JMP

Кто-нибудь может сказать мне, почему я получаю эту ошибку в строке 3 (@sum)?


person user1867675    schedule 30.11.2012    source источник


Ответы (2)


Я не знаю, почему ошибка появляется в строке 3, но вы не можете напрямую установить значение адреса памяти в строке 4. Вы можете принудительно вывести «1» из ALU, как в строке 2, но там невозможно вытеснить из него "8192" без предварительного ввода. Вы должны сначала присвоить значение «8192» A-регистру, затем сохранить A-регистр в D-регистр, затем выбрать адрес памяти, затем сохранить D-регистр туда.

person Hobadee    schedule 10.04.2013

Ошибка, которую вы видите, связана с тем, что вы не можете поместить значение «8192» непосредственно в @sum.

Вот код, который я написал, чтобы решить эту проблему:

@8192  // number of pixels on a screen divided by 16-bit address (256 x 512 / 16)
D=A    // D = total number of pixels
@sum
M=D    // assigns sum with value of 8192
person punkrockpolly    schedule 16.10.2013