首页
社区
课程
招聘
[旧帖] [求助]第一个汇编程序的小问题(Linux - x86_64) 0.00雪花
发表于: 2013-9-28 13:29 2046

[旧帖] [求助]第一个汇编程序的小问题(Linux - x86_64) 0.00雪花

2013-9-28 13:29
2046
就是这个程序:
.code32
.section .data
output:
	.ascii "The value is %d\n"
values:
	.int 10,15,20,25,30,35,40,45,50,55,60
.section .text
.globl main
main:
	movl $0, %edi
	loop:
	movl values(,%edi,4), %eax
	pushl %eax
	pushl $output
	call printf
	addl $8, %esp
	inc %edi
	cmpl $11, %edi
	jne loop
	movl $0, %ebx
	movl $1, %eax
	int $0x80

正在练习使用C库,汇编链接时都对,但是一执行就这样:
bash: ./asm: 正在访问一个已毁坏的共享库
刚刚查了一下,好像是64位机器上运行32位程序的问题,但是不知道要怎么改……
PS:在32位上运行正常。
小菜初来,各位多多指教……

后来这样编译:
[xxx@ooo asm1]$as -32 -o asm.o asm.s ;ld -m elf_i386 -lc -o asm
ld: skipping incompatible /usr/lib/libc.so when searching for -lc
ld: skipping incompatible /usr/lib/libc.a when searching for -lc
ld: cannot find -lc

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有人理我吗?
2013-9-28 21:33
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
对了,补充一下,使用中断调用就没有问题,只有用C库的时候有问题。
2013-9-29 07:13
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
已解决。我少装了几个库,参考ArchWiki装好就行了。但是只能使用gcc -m32编译,还是不能用as,ld直接做,应该还是有问题的。
2013-9-29 17:16
0
游客
登录 | 注册 方可回帖
返回
//