Etwas verwirrt: sp/fp(bp) per inline-Assembler laden
-
Hab nie Asm gelernt, aber durch dieverses Debuggen lernt mal halt bischen und nun wollte ich mir den Framepointer in C holen. Architektur: AMD64
void *fp; //gcc syntax asm("movq %%ebp, %0;" :"=r"(fp));
Daraus wird dann:
movq %ebp, %rax
Aber da meckert der Assembler: Error: suffix or operands invalid for `mov'
Wenn ich einen 4Byte-Typ (int) fuer fp verwende gehts. Aber warum denn? Ein void* ist 8Byte gross, genau wie ebp.
-
Ok hat sich geklaert muss natuerlich aus %rbp lesen. Bin da immer etwas verwirrt seit dem 64bit Zeug.