我是汇编语言编程的新手。我写下面的代码,
.text
.globl _start
_start:
movl $1,%eax
movl $0,%ebx
int $0x80
并使用as -o JustExit.o JustExit.asm
命令创建目标文件。 (程序集文件名是JustExit.asm)。
在此步骤之后,我使用
提供了可执行权限chmod 777 ./JustExit.o
当我执行程序时,它说,
-su:./ JustExit.o:无法执行二进制文件
我无法理解为什么这个简单的“退出”计划无效。
感谢。
答案 0 :(得分:3)
通过as
汇总您的来源会产生一个“尚未”可执行的object file。
您必须将目标文件与ld
链接起来,例如a.out
,然后生成一个完全正常工作的可执行文件(默认情况下为$ as -o JustExit.o JustExit.asm
$ ld JustExit.o
$ ./a.out
)。
您的命令行链看起来像这样:
{{1}}
它有效!