5

アセンブリ プログラミングで 80H だけを使用して、Linux カーネルにサービスを要求しますか?

Linuxでの他の割り込み番号のユーティリティは何ですか?

Windows から Linux に移行しています。

4

1 に答える 1

2

int3(デバッグ ブレークポイント) とint 80h(古いシステム コール) は、Linux で一般的に使用される 2 つのソフトウェア割り込みです。ハードウェア割り込みはデバイス ドライバーによって使用されますが、おそらく気にする必要はありません。

つまり、32 ビット システムでは、カーネルは、システム コールを実行するために呼び出すことができる各プロセスにマップされたコードを提供し、最も適切なメカニズム ( syscallsysenterまたはint 80h) を自動的に使用します。すべての 64 ビット システムがこのsyscall命令をサポートしているため、これがロング モードで通常使用される命令です。64 ビットのシステム コール番号は 32 ビットとは異なることに注意してください。

最後に、通常、Linux ではアセンブリからのシステム コールを使用しません。c ライブラリを使用するか、システム コールを完全に回避します。システム コールは遅く、アセンブリの主な用途の 1 つは速度のためです。もちろん、セキュリティ関連のコードやコンパイラ/言語開発などの例外もあります。

于 2013-10-19T23:28:18.423 に答える