从地面编程中的int $ 0x80

时间:2012-02-19 18:50:52

标签: assembly x86-64

我最近开始阅读Programing From The Ground Up (PDF),但我在第一个程序中遇到了一个问题。该计划非常简单:

.section .data
.section .text

.globl _start

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

但在编译和运行时,我收到错误Illegal Instruction: 4。我编辑了程序,以便正确编译(删除了两个.section并将_start更改为_main),这可能会影响它。

我正在使用x86_64指令集(英特尔处理器)。

1 个答案:

答案 0 :(得分:2)

如果您使用的是x86-64,则需要稍微更改ABI,请参阅this。有关差异的非常好的摘要,请参阅this post。