我有一個Windows Mobile 6 ARMV4I項目,我想要獲取程序計數器的值。在ARM程序集中獲取PC值
該函數聲明如下:
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()
功能,每次都遇到相同的號碼。所以,我假設我的集會沒有做我認爲正在做的事情。任何人都可以指出我可能做錯了什麼?
感謝, PaulH
假設他使用微軟的開發工具,不支持嵌入式ARM彙編。 – ctacke 2010-04-27 18:26:25
這是我第一次參加集會,所以我可能會誤解你。但是,R15是程序計數器,R0是根據http://www.pentest.co.uk/documents/exploringwce/exploring_wce_shellcode.html#N10081的返回值。你是說這個網站是錯誤的,它實際上是R14?謝謝 – PaulH 2010-04-27 18:26:58
@ctacke - 是的,我正在使用VS2008,並且不支持內聯'__arm'命令。 – PaulH 2010-04-27 18:27:53