怎么利用Centos汇编的call指令调用系统函数

如何利用Centos汇编的call指令调用系统函数
我用gdb查看c程序的反汇编代码,里面在调用系统函数的时候用的是call指令,后面跟的是地址,例如call 0x804803a4<execve>,但是我再按照这句话写的时候,同样的地址,里面存的已经不是那个execve了,我的问题就在这,为什么这个地址的内容会变,我该怎样使用call指令调用execve函数呢?或者说那个execve跑哪去了?麻烦各位了
------解决思路----------------------
.....
call execve
...

as -o xx.o xx.s
ld -dynamic-linker /lib/ld-linux.so.2 -lc -o xx xx.o

ld会加载libc.so动态库, 并计算出execve地址