Ich versuche, den Call-Stack zu bekommen, aus irgendeinem Grund die folgenden Code einen falschen Stapelzeiger zurückgibt:Wie erhält man den Wert des Stackpointers? (MIPS GCC)
unsigned int stack_pointer = 0;
__asm("la $26, %[spAddr]\n\t"
"or $27, $0, $sp\n\t"
"sw $27, 0($26)\n\t"
"nop"::[spAddr] "m" (stack_pointer));
return stack_pointer;
Was bin ich hier?
Sie deklarieren keine Ausgabeparameter (nach dem 1. Doppelpunkt deklariert). Wo erwartest du, dass Dinge zurückgegeben werden? Siehe [docs] (https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#OutputOperands). –