Search code examples
macosassemblyx86-64system-callsgnu-assembler

GNU Assembler (Mac OS X 64-bit): Illegal instruction: 4


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!


Solution

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

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

    Source.