int main()
{
__asm__("movl $0x1,%%eax;
movl $0x0,%%ebx;
int $0x80;
":::"eax","ebx");
}
Linuxでexit()の動作をシミュレートしようとしています。しかし、現代のLinuxではexit()の後にいくつかのexitハンドラが呼び出されるので、それを行うことは非常に難しいことがわかります。 私はexit()の古いバージョンを書いています。たぶん10年前にあなたはいくつかのコードでそれを見つけることができます。 gccでコンパイルします。GCCインラインアセンブリに関する奇妙なエラーメッセージ
gcc -o exit exit.c
これは私にこれらのメッセージを与えます。
exit.c: In function ‘main’:
exit.c:3:13: warning: missing terminating " character [enabled by default]
exit.c:3:5: error: missing terminating " character
exit.c:4:13: error: expected string literal before ‘movl’
exit.c:6:27: warning: missing terminating " character [enabled by default]
exit.c:6:13: error: missing terminating " character
私は慎重に自分のコードを調べましたが、自分のコードが間違っているとは思わないです。それは何ですか?
ありがとうございました。多分私の読書資料の中には間違いがあるかもしれません。 –