错误" 16434非法硬件指令./a.out"运行x86可执行文件时

时间:2017-01-03 20:33:13

标签: macos gcc assembly x86

我通过this free book了解x86的基础知识。

请记住,与Linux x86相比,这是特定的到macOS x86。

它是为GNU Linux而制作的,所以我必须更改一些可能出错的代码。我拿了这段代码:

.section .data
 .section .text
 .globl _start
_start:
movl $1, %eax
movl $0, %ebx
int $0x80

在macOS上关于x86的一些谷歌搜索之后,我将这段代码转换成了这个:

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

我使用gcc test.s编译了它,将其编译为a.out。尝试使用./a.out运行时,我收到错误[1] 17301 illegal hardware instruction ./a.out

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:-1)

@Jester帮助了我。您可以查看我的问题的评论,但基本上调用约定对于macOS是不同的。我找到了帮助我的this资源。