Question

Je pense que je sais comment gérer cette affaire, mais je veux juste m'assurer que tout est bien fait. Supposons que vous ayez le code C suivant:

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

P contient une adresse qui pointe vers un emplacement en mémoire qui a une autre adresse. J'aimerais modifier la deuxième adresse. Donc, le code 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

Est-ce ainsi que vous le feriez?

Était-ce utile?

La solution

Oui, c'est ce que je peux dire. Cela aurait été plus facile si vous utilisiez les mêmes noms de variables (par exemple, des symboles à la place des noms de registre absolus).

Pourquoi n'avez-vous pas simplement compilé le code C et examiné le fichier liste ou le résultat de l'assemblage? Je fais toujours cela en cas de doute.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top