質問

このケースに対処する方法は知っていると思いますが、それが正しいことを確認したいだけです。次の C コードがあるとします。

int myInt = 3;
int* myPointer = &myInt;
int** mySecondPointer = &myPointer;

P には、別のアドレスを持つメモリ内の場所を指すアドレスが含まれています。2番目のアドレスを変更したいのですが。MIPS コードは次のようになります。

la $t0, my_new_address
lw $t1, ($a0) # address that points to the address we want to modify
sw $t0, ($t1) # load address into memory pointed to by $t1

それはあなたならそうする方法ですか?

役に立ちましたか?

解決

はい、私が知る限りそれは正しいです。同じ変数名を使用した方が簡単だったでしょう (例:ハードレジスタ名の代わりにシンボルを使用します)。

なぜ単純に C コードをコンパイルして、リスト ファイルまたはアセンブリ出力を確認しなかったのですか?迷ったときはいつもそうしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top