int $ 0x80 в программировании с нуля - PullRequest
2 голосов
/ 19 февраля 2012

Я недавно начал читать Программирование с нуля (PDF) , но я столкнулся с проблемой в первой программе. Программа очень проста:

.section .data
.section .text

.globl _start

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

Но при компиляции и запуске я получаю ошибку Illegal Instruction: 4. Я отредактировал программу так, чтобы она правильно компилировалась (удалил два .section s и изменил _start на _main), чтобы это могло повлиять на него.

Я использую набор инструкций x86_64 (процессор Intel).

1 Ответ

2 голосов
/ 19 февраля 2012

Если вы используете x86-64, вам нужно немного изменить ABI, см. this . Для очень хорошей сводки различий см. этот пост.

...