64位Linux环境 编译32位汇编程序(外链C库函数)

使用的是gas

命令如下 :

as --32 -o helloworld.o helloworld.s

ld -m elf_i386 -dynamic-linker /lib/i386-linux-gnu/ld-linux.so.2 -o helloworld helloworld.o/lib/i386-linux-gnu/libc.so.6

在有些linux发行版,例如Arch Linux中,链接需要如下所示:

ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o hi hi.o /usr/lib32/libc.so.6

编译、连接 两条命令完成。


在汇编源程序的第一行添加

.code32

表明这是一个32位汇编程序

如果汇编程序中没有引用C函数,则编译连接的命令比较简单。

as -o hello.o helloworld.s

ld -o hello hello.o


你可能感兴趣的:(64位Linux环境 编译32位汇编程序(外链C库函数))