2016-08-23 123 views
0

如果指向堆棧中下一個位置的指針在Ram [SP]/[0]中被激怒,那麼如何指示計算機在hack中打開位置? 我試圖NAND2Tetris虛擬機轉換器

@0 
D=M 
@D 

,但沒有包括在存儲在RAM開口地址[0] 我如何讓它訪問存儲在RAM中的RAM地址[0] 謝謝

+1

_「打開地址」_是什麼意思?另外,你將使用'Ram [0]'_for_的值(將它存儲在RAM的其他位置?執行條件跳轉?...) – Michael

回答

0

你通過使用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將裝載在A與符號位置d中的內容,這將是由彙編器得到自動分配寄存器。 @D(地址)和D(寄存器)並不是一回事,因此,使用@D並不是一個好主意。

+0

謝謝你解決了我的問題 – user3764371