私はこれを理解しましたが、新しい質問(「なぜ?」)を別の質問に分割する代わりに、この問題の解決策と説明を同じページに保持するのが最善だと思います.
でカーネル割り込みを使用して、開始してすぐに終了する基本的なアセンブリプログラムを作成しています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
実行すると、1 行のエラーが発生します。
Illegal instruction
奇妙なことに、すべてをコメントアウトしてもIllegal instruction
、指示がまったくないにもかかわらず、結果が返されます。linking
リンクするファイルが他にないのに、ステップが抜けているのでしょうか? はい、そうです
編集:私の質問を言い換えさせてください.ライブラリやリンクするものがないのに、なぜリンクする必要があるのですか?