2016-08-23 2 views
0

Если указатель на следующее место в стеке бестолкнул в Ram [SP]/[0], как я могу дать указание компьютеру взломать его? Я попыталсяNAND2Tetris VM Переводчик

@0 
D=M 
@D 

но не открывая адрес в сохраняемых в ОЗУ [0] Как сделать доступ к адресу барана, хранящуюся в ОЗУ [0] Спасибо

+1

Что означает _ «открытие адреса» _ означает? Кроме того, что вы будете использовать значение 'Ram [0]' _for_ (сохранить его в другом месте в ОЗУ? Выполнить условный переход? ...) – Michael

ответ

0

You опосредованно через местоположение ПЗУ с использованием регистра A/M.

@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, который будет получать автоматически присвоенные ассемблере. @D (адрес) и D (регистр) - это не одно и то же, и по этой причине использование @D не является хорошей идеей.

+0

Спасибо, что решил мою проблему – user3764371