我想在啓動時找到位於AArch64中_GLOBAL_OFFSET_TABLE_ [0]上的_DYNAMIC結構偏移量,並且尚未重新定位GOT項目。從全局偏移量表中查找負載偏移量
我在程序集中編寫代碼。
ldr x2, [x2]
我在做什麼錯在這裏:
.text
.globl _start
.type _start,%function
_start:
mov x0, sp
sub sp, sp, #132
/* Find our load offset at GOT[0] */
ldr x1, .Lpool
.LPIC0: add x1, x1, .LPIC0 // x1=address of _DYNAMIC
ldr x2, .Lpool+4
add x2, x2, .LPIC0 // x2=address of GOT
ldr x2, [x2] // x2=GOT[0]
sub x1, x1, x2 // load offset of _DYNAMIC
bl my_function
ldr x1, [sp]
mov sp, x1
br x0
.align 2
.Lpool: .word _DYNAMIC-.LPIC0
.word _GLOBAL_OFFSET_TABLE_-.LPIC0
.size _start,.-_start
當我運行的代碼我得到段錯誤,在下面的代碼行(調試節目)?
在此先感謝。
每條評論都會幫助你更快地回答你的問題。就目前而言,缺少評論是對那些想要幫助你的人的障礙。 – 2014-09-04 10:48:46
你有沒有試過在這段代碼中使用調試器? – 2014-09-04 10:50:37
@ User.1當然,我添加了有用的評論。 – 2014-09-04 11:08:00