免费注册 查看新帖 |

Chinaunix

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

[函数] gcc汇编请教,函数返回值不对 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-05 03:49 |只看该作者 |倒序浏览
各位大侠,本人在学习过程中,想测试一下gcc中的汇编,写了个加法程序如下:
void add(int s,int *d)
{
     __asm__ __volatile__(
     "addl %1,%0"
     :"=m"(d)
     :"ir"(s),"m"(d)
     );
}
void main()
     int input=1;
     int *output;
     output=2;
     add(input,output);
     printf("output is: %d\n",*output);
}
怎么结果还是2,不是我要的3?
我用gcc -S编成汇编程序后,看不出毛病,也不知道如何调试?
另外,好像gdb没有dos下debug调试汇编的功能吧?哪位大侠给介绍一个linux下汇编调试工具。

论坛徽章:
0
2 [报告]
发表于 2003-07-05 10:35 |只看该作者

gcc汇编请教,函数返回值不对

int *output;
output=2;
?????
你这里只是让output指向一个常量

论坛徽章:
0
3 [报告]
发表于 2003-07-05 13:05 |只看该作者

gcc汇编请教,函数返回值不对

linux下的汇编是nasm

论坛徽章:
0
4 [报告]
发表于 2003-07-05 15:20 |只看该作者

gcc汇编请教,函数返回值不对

原帖由 "无双" 发表:
int *output;
output=2;
?????
你这里只是让output指向一个常量
   

不好意思打错了,在程序中是*output,否则编译过也运行不了。
结果还是一样。

论坛徽章:
0
5 [报告]
发表于 2003-07-05 15:24 |只看该作者

gcc汇编请教,函数返回值不对

[quote]原帖由 "odin_free"]linux下的汇编是nasm[/quote 发表:
     
可是我不光是汇编还要和c结合的话,还是gcc好用吧。

论坛徽章:
0
6 [报告]
发表于 2003-07-05 18:45 |只看该作者

gcc汇编请教,函数返回值不对

我知道怎么回事了,是在嵌入汇编子程序中,将d改为*d,即可。

论坛徽章:
0
7 [报告]
发表于 2003-07-05 22:54 |只看该作者

gcc汇编请教,函数返回值不对

to likec:

请问GCC的汇编资料在哪可以找到?能发一份给我吗?
unixnow@163.com

论坛徽章:
0
8 [报告]
发表于 2003-07-06 07:32 |只看该作者

gcc汇编请教,函数返回值不对

原帖由 "mgw" 发表:
to likec:

请问GCC的汇编资料在哪可以找到?能发一份给我吗?
unixnow@163.com
   

都是网上找的,还有毛德操的《情境分析》第一章。
你可以在北大天网上搜gcc-inline-asm.pdf,试试看。 北大天网好像有问题了,已发。
bram@163.net

论坛徽章:
0
9 [报告]
发表于 2003-07-06 13:18 |只看该作者

gcc汇编请教,函数返回值不对

已收到,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP