Я только что понял это, но вместо того, чтобы разбить мой новый вопрос («почему?») На другой вопрос, я думаю, что лучше всего, если решение этой проблемы и объяснение должны быть сохранены на той же странице.
Я пишу основную программу ассемблера, чтобы просто запустить ее и сразу же выйти с использованием прерывания ядра на int 0x80
.Мой текущий код выглядит следующим образом:
/* Simple exit via kern-interrupt */
.globl start
start:
pushl $0x0
movl $0x1, %eax
subl $4, %esp
int $0x80
собран с
as -arch i386 <file>.s
при выполнении я получаю ошибку в одну строку:
Illegal instruction
Это странно,даже комментирование все равно приводит к Illegal instruction
, несмотря на то, что нет никаких инструкций вообще.Я пропускаю шаг linking
, несмотря на то, что нет других файлов для ссылки? Да, я
РЕДАКТИРОВАТЬ: Позвольте мне перефразировать мой вопрос, зачем вам ссылки, когда нет библиотеки или что-то, на что можно ссылаться?