我想知道一种方法,可以将堆栈指针的值存储到C中的变量中。
答案 0 :(得分:0)
我发现内联asm没用,因为它是特定于编译器的,特别是像这样的东西只是使用asm函数。对于gnu汇编程序:
.thumb
.thumb_func
.globl GETSP
GETSP:
mov r0,sp
bx lr
in c
extern unsigned int GETSP ( void );
...
unsigned int sp;
...
sp=GETSP();
明白你使用它的每个地方每次都会给出相同的价值。对于许多编译器,整个函数将在函数中给出相同的结果,如果函数被其他不同的函数重用,那么你可能会得到sp值变化。