我有一个 Windows Mobile 6 ARMV4I 项目,我想在其中获取程序计数器的值。
函数声明如下:
extern "C" unsigned __int32 GetPC();
我的汇编代码如下所示:
GetPC FUNCTION
EXPORT GetPC
ldr r0, [r15] ; load the PC value in to r0
mov pc, lr ; return the value of r0
ENDFUNC
但是,当我调用
GetPC()
函数时,我每次都得到相同的数字。所以,我假设我的程序集没有做我认为它在做的事情。谁能指出我可能做错了什么?谢谢,
保罗
最佳答案
PC 每次都相同,因为 ldr r0, [r15]
有固定地址(PC 在那里总是相同的)。使用 R14 因为它保存返回地址,这可能是您需要的。或使用内联函数。
关于windows-mobile - 获取 ARM 汇编中的 PC 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2723780/