为什么简单的退出程序不起作用?

时间:2013-12-20 01:44:49

标签: linux assembly syntax x86 gas

我是汇编语言编程的新手。我写下面的代码,

.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:无法执行二进制文件

我无法理解为什么这个简单的“退出”计划无效。

感谢。

1 个答案:

答案 0 :(得分:3)

通过as汇总您的来源会产生一个“尚未”可执行的object file。 您必须将目标文件与ld链接起来,例如a.out,然后生成一个完全正常工作的可执行文件(默认情况下为$ as -o JustExit.o JustExit.asm $ ld JustExit.o $ ./a.out )。

您的命令行链看起来像这样:

{{1}}

它有效!

相关问题