免费注册 查看新帖 |

Chinaunix

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

[已解决]Linux汇编初学者的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-02 18:46 |只看该作者 |倒序浏览
代码如下:
section .text

global main



main:

mov eax,4
mov ebx,1

mov ecx,msg

mov edx,14
int 80h
mov eax,1

int 80h

msg:

db "Hello World!",0ah,0dh


编译运行:
nasm –f elf hello.asm

gcc –o hello hello.o

第一步没问题,
第二步出现错误:
/usr/bin/ld: i386 architecture of input file `hello.o' is incompatible with i38686-64 output
collect2: ld returned 1 exit status

我的机器是x86_64的环境,请问这个怎么解决阿。先谢谢了

[ 本帖最后由 破碎细胞 于 2008-3-3 15:19 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-03-02 23:21 |只看该作者

回复 #1 破碎细胞 的帖子

不清楚 nasm 是否可产生 64 位代码,若能,那你就要看看需要什么参数了

论坛徽章:
0
3 [报告]
发表于 2008-03-03 15:21 |只看该作者

回复 #2 mik 的帖子

呵呵,谢谢提示啊。

我找了下,NASM确实对x86_64支持不好。
我换成了YASM
这样就可以了:
yasm -f elf64 hello.asm
gcc -o hello hello.o
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP