-
-
[旧帖]
[求助]第一个汇编程序的小问题(Linux - x86_64)
0.00雪花
-
发表于:
2013-9-28 13:29
2073
-
[旧帖] [求助]第一个汇编程序的小问题(Linux - x86_64)
0.00雪花
就是这个程序:
.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
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!