Pranit Kothari
Pranit Kothari

Reputation: 9859

Why simple exit program do not work?

I am new to assembly language programming. I write following code,

.text
.globl _start

_start:
    movl $1,%eax
    movl $0,%ebx
    int $0x80

and use as -o JustExit.o JustExit.asm command for creating object file. (Assembly file name is JustExit.asm).

After this step I gave executable permission using,

chmod 777 ./JustExit.o

When I execute program it says,

-su: ./JustExit.o: cannot execute binary file

I am not able to understand why this simple 'exit' program is not working.

Thanks.

Upvotes: 1

Views: 120

Answers (1)

user703016
user703016

Reputation: 38005

Assembling your source through as produces an object file which is "not yet" executable. You have to link the object file with a linker such as ld, which will then produce a fully working executable (a.out by default).

Your command line chain would look like this:

$ as -o JustExit.o JustExit.asm
$ ld JustExit.o
$ ./a.out

And it works!

Upvotes: 3

Related Questions