Question

I am new to GNU Assembler and I'm trying to execute this piece of code:

.globl _main
_main:
    movl $1, %eax
    movl $0, %ebx
    int $0x80

This programm should exit by the system call exit (1). Compiled it (no warnings):

gcc test.s

But running it gives me the error: Illegal instruction: 4

Thanks for help!

Was it helpful?

Solution

If you're compiling a 64-bit executable, then you should write something like this:

movq $0x2000001, %rax
movq $0, %rdi
syscall

Source.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top