2012-02-19 7 views
2

私は最近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を2つ取り除き、_start_mainに変更したため影響を受ける可能性があります)。

私はx86_64命令セット(Intelプロセッサ)を使用しています。

+0

このコードはうまく動作します(Linuxの場合)。あなたはどんなOSですか?しかし、なぜあなたは 'fork'(2)システムコールを呼びますか?おそらく、 'exit'システムコール(1)が必要でしょうか? – kharvd

+0

ああ、それはタイプミスでした。 Mac OS 10.7のImそれを1に変更することは役に立たなかった。どのようにコンパイルしていますか?私は 'gcc'を使っています。 – Jumhyn

+0

as start.s -o start – kharvd

答えて

2

x86-64を使用している場合は、ABIを少し変更する必要があります(thisを参照)。相違点の概要については、this投稿を参照してください。

+0

に保存されます。ありがとうございます! – Jumhyn

関連する問題