Frage

Ich glaube, ich weiß, wie man diesen Fall zu behandeln, aber ich möchte nur sicherstellen, dass ich es haben Recht. Sagen Sie bitte die folgenden C-Code haben:

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

P enthält eine Adresse, die zu einem Ort im Speicher verweist, die eine andere Adresse hat. Ich mag die zweite Adresse ändern. So MIPS Code:

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

Ist das so, wie Sie es tun würden?

War es hilfreich?

Lösung

Ja, das ist richtig, soweit ich das beurteilen kann. Es wäre einfacher gewesen, wenn Sie die gleichen Variablennamen verwendet (zum Beispiel Symbole statt Festregisternamen).

Warum haben Sie nicht einfach die c-Code kompiliert und nahm einen Blick auf die Liste-Datei oder Assembly-Ausgabe? Ich habe immer das tun, wenn im Zweifel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top