我想我知道如何处理这个案子,但我只是想确保我做对了。假设您有以下 C 代码:

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

你会这样做吗?

有帮助吗?

解决方案

是的,据我所知,这是正确的。如果您使用相同的变量名称(例如符号而不是硬寄存器名称)。

为什么不直接编译 C 代码并查看列表文件或程序集输出?当有疑问时我总是这样做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top