30 lines
653 B
ArmAsm
30 lines
653 B
ArmAsm
.text
|
|
.globl main
|
|
.type main, @function
|
|
main:
|
|
subl $12, %esp
|
|
call *foo@GOT
|
|
call *bar@GOT
|
|
call *plt@GOT
|
|
movl foo@GOT, %eax
|
|
call *%eax
|
|
movl bar@GOT, %eax
|
|
call *%eax
|
|
movl plt@GOT, %eax
|
|
call *%eax
|
|
call __x86.get_pc_thunk.cx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ecx
|
|
movl foo@GOT(%ecx), %ecx
|
|
call *%ecx
|
|
subl $12, %esp
|
|
pushl $0
|
|
pushl $0 # Push a dummy return address onto stack.
|
|
jmp *myexit@GOT
|
|
.size main, .-main
|
|
.section .text.__x86.get_pc_thunk.cx,"axG",@progbits,__x86.get_pc_thunk.cx,comdat
|
|
.globl __x86.get_pc_thunk.cx
|
|
.hidden __x86.get_pc_thunk.cx
|
|
.type __x86.get_pc_thunk.cx, @function
|
|
__x86.get_pc_thunk.cx:
|
|
movl (%esp), %ecx
|
|
ret
|