タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

linuxとIntel64に関するnezukuのブックマーク (1)

  • x86 Linux上で sysenter 命令を使ってシステムコールを呼び出す方法

    x86(32bit)環境で、どのようにシステムコールが呼ばれているのかを調べてみました。 int 80h 昔からあるシステムコールの呼び方で、eax レジスタにシステムコールの番号をセットした後、ソフトウェア割り込みの int 80h をコールするとシステムコールが呼ばれます。これはどのバージョンの Linux でも使えます。ただし、ソフトウェア割り込みは遅いのが欠点です。 sysenter 最近のIntelのプロセッサはすべて sysenter というシステムコール専用の命令が用意されています。この命令は int 80h に比べるとかなりシンプルで、予め設定されたシステムコールハンドラのアドレスをCS:EIPとSS:ESPにセットして、特権モードに切り替えて実行を再開するのみです。詳しくは「64ビットCPU(AMD64+EM64T)でアセンブラ int 2E/sysenter/sysca

  • 1