2008-09-19 187 views
4

我想我知道如何處理這種情況,但我只是想確保我是對的。假設你有下面的C代碼:MIPS彙編指針指針?

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

P包含指向內存中的一個地方有另一個地址的地址。我想修改第二個地址。所以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 

這樣做你會這樣做嗎?

回答

4

是的,就我所知,這是正確的。如果使用相同的變量名稱(例如符號而不是硬寄存器名稱)會更容易。

爲什麼你不簡單地編譯C代碼,並看看列表文件或程序集輸出?如有疑問,我總是這樣做。