LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1305|回复: 3

nasm汇编调用C函数的问题

[复制链接]
发表于 2007-11-20 23:13:06 | 显示全部楼层 |阅读模式
//file1.asm
section   .text
extern   printf
global   main
main:
        push   dword   str1
        call   printf
        add   esp,byte   4
        ret
str1:        db         "Hello,World! ",0
  
//file2.asm
section   .text
extern   printf
global   main
main:
        push   dword   str1
        call   printf
        add   esp,byte   4
  
        mov   eax,1
        mov   ebx,0
        int   0x80
str1:        db         "Hello,World! ",0
  
我使用nasm   -felf   file1.asm
gcc   -o   file1   file1.o
两条命令分别编译两个文件,得出的结果运行file1可以得到输出,但运行file2就没有结果,使用ret与系统调用结束有什么区别吗?还是有其他问题?
 楼主| 发表于 2007-11-23 17:25:54 | 显示全部楼层
嗨...........
已经解决了
回复 支持 反对

使用道具 举报

发表于 2007-11-25 21:55:25 | 显示全部楼层
能不能贴一下,怎么解决的?
回复 支持 反对

使用道具 举报

发表于 2007-11-26 16:10:10 | 显示全部楼层
行缓冲问题吧
这么写应该没问题
str1: db "Hello,World! ",0xA,0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表