私は現在、JS で Logisim CPU 用の C++ コンパイラに取り組んでおり、変数に問題があります。
データ/値を格納するための RAM 内のスペースを定義し、データ スペースへのアドレスを格納するためのスペースを定義しました。最後の変数へのポインタを持つレジスタ nx と、最後の「データストレージ」RAM へのポインタを持つレジスタ mx があります。しかし、それらにアクセスする方法がわかりません。たとえば、次のとおりです。
変更された C++ コード:
int *pointer_test;
int test;
test = 123;
pointer_test = &test;
*pointer_test = 25;
プリアセンブラー:
//Allocate new variable <--- int *pointer_test;
add nx, 1
//Set the pointer pointing to zero
sram nx, 0
//Allocate another variable <--- int test;
add nx, 1
//Allocate new storage for the variable
add mx, 1
//Let the variable point to the data <--- test = 123;
sram nx, mx
sram mx, 123
今すぐ実装するにはどうすればよいですか:
pointer_test = &test;
&test の値のみが nx に保存されています。これは、宣言された最後の変数であるためですが、変数/ポインター「pointer_test」のアドレスではありません ...