2008-09-19 180 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代码,并看看列表文件或程序集输出?如有疑问,我总是这样做。