免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2367 | 回复: 5
打印 上一主题 下一主题

[Linux] 不使用库的情况下输出字串到stdout [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-22 00:05 |只看该作者 |倒序浏览
在学习使用链接脚本控制链接过程中遇到一个小问题
成功编译文件后,执行可执行文件后却发现没有输出。。。。。求解

按书上的例子,编译执行后会在终端上输出字串

下面是我的链接脚本



下面是我的c文件



下图是我在编译和链接时的选项



ld_for_test.zip (1.99 KB, 下载次数: 8)

论坛徽章:
0
2 [报告]
发表于 2016-05-26 20:00 |只看该作者
    __asm__ __volatile__

    (

            "pusha \n\t"

            "movl $4,%%eax \n\t"           //write的功能号__NR_write为4

            "movl $1,%%ebx \n\t"           //STDOUT_FILENO=1

            "movl $0x6c6c6568,%%ecx\n\t"   //"hell"放入ecx

            "movl %%ecx,-0x8(%%esp) \n\t"  //ecx写入栈esp-8处

            "movl $0x00000a6f,%%ecx\n\t"   //"o\n"放入ecx

            "movl %%ecx,-0x4(%%esp) \n\t"  //"ecx写入栈esp-4处

            "leal -0x8(%%esp),%%ecx\n\t"   //取栈esp-8处地址放入ecx

            "movl $6,%%edx\n\t"            //长度6

            "int $0x80 \n\t"

            "popa \n\t"

            //write(STDOUT_FILENO,"hello\n",6);

            "movl $1,%%eax \n\t"

            "movl $0,%%ebx \n\t"

            "int $0x80\n\t"

            //exit(0);

    );

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
3 [报告]
发表于 2016-06-23 07:45 |只看该作者
粗看了一下代码应该是32位程序代码,如果你用的是64位系统的话,代码也应该相应升到64位版本,看一下是否这方面的原因

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
4 [报告]
发表于 2016-06-23 07:52 |只看该作者
另外,你的标准输出描述符也写错了

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
5 [报告]
发表于 2016-06-23 08:10 |只看该作者
爻易 发表于 2016-06-23 07:52
另外,你的标准输出描述符也写错了


细看GCC内嵌汇编也不对,楼主你确定是抄书上的?又是一个抄都抄不对的家伙

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00
6 [报告]
发表于 2016-07-03 10:56 |只看该作者
没有抄错啊。。。应该是书的版本跟我们现在的系统调用号不同吧回复 5# 爻易


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP