Pergunta

Eu acho que sei como lidar com este caso, mas eu só quero ter certeza que tenho direito. Digamos que você tenha o seguinte código C:

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

P contém um endereço que aponta para um lugar na memória que tem outro endereço. Eu gostaria de modificar o segundo endereço. Assim, o código 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

É assim que você faria isso?

Foi útil?

Solução

Sim, isso é correto, tanto quanto eu posso dizer. Teria sido mais fácil se você usou os mesmos nomes de variáveis ??(por exemplo, símbolos em vez de nomes de registro de disco rígido).

Por que você não simplesmente compilou o c-código e deu uma olhada na lista de-arquivo ou montagem de saída? Eu sempre faço isso em caso de dúvida.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top