linux-汇编-调用C库函数_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > linux-汇编-调用C库函数

linux-汇编-调用C库函数

 2010/9/19 23:30:39  deepfuture  http://deepfuture.javaeye.com  我要评论(0)
  • 摘要:深未来技术原创,http://deepfuture.javaeye.com1、使用GCC编译.section.dataoutput:.asciz"http://deepfuture.javaeye.com\n".section.text.globalmainmain:push$outputcallprintfaddl$4,%esppush$0callexit#gcc-otesttest.s#./testhttp://deepfuture.javaeye.com2、使用汇编器编译,使用动态链接
  • 标签:linux 汇编 调用C库函数

深未来技术原创,http://deepfuture.javaeye.com

1、使用GCC编译

.section .data
? output:
? .asciz "http://deepfuture.javaeye.com\n"?
.section .text
?? .global? main
?? main:
?? push $output
?? call printf
?? addl $4,%esp
?? push $0
?? call exit

?

?

?

# gcc -o? test test.s
# ./test
http://deepfuture.javaeye.com
2、使用汇编器编译,使用动态链接-dynamic-linker,要求后跟SO库,可使用find / -name ld*.so来寻找链接库,每个LINUX版本不一样,链接库不一样,笔者用的是puppy linux,链接库名为ld-linux.so.2

.section .data
? output:
? .asciz "http://deepfuture.javaeye.com\n"?
.section .text
?? .global? _start
?? _start:
?? push $output
?? call printf
?? addl $4,%esp
?? push $0
?? call exit

?

# as -o test.o test.s
# ld -lc -dynamic-linker /lib/ld-linux.so.2 -o test test.o
# ./test
http://deepfuture.javaeye.com

发表评论
用户名: 匿名