我有一个 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/

10-11 21:09