Pregunta

Creo que sé cómo manejar este caso, pero sólo quiero asegurarme de hacerlo bien.Digamos que tiene el siguiente código C:

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

P contiene una dirección que apunta a un lugar en la memoria que tiene otra dirección.Me gustaría modificar la segunda dirección.Entonces el 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

¿Es así como lo harías?

¿Fue útil?

Solución

Sí, hasta donde yo sé, es correcto.Habría sido más fácil si hubiera usado los mismos nombres de variables (p. ej.símbolos en lugar de nombres de registros duros).

¿Por qué no simplemente compiló el código C y echó un vistazo al archivo de lista o al resultado del ensamblado?Siempre hago eso cuando tengo dudas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top