sysenter
読み:シス-エンター
外語:sysenter

 x86系プロセッサーの命令の一つで、システムコール用に用意された命令。
目次

概要
 Pentium II以降で利用できる。オペコードは「0fh 34h」の2バイトである。
 元の処理に戻る場合の命令はsysexitで、こちらのオペコードは「0fh 035h」の2バイトである。

特徴

由来
 従来、システムコールの実装にはソフトウェア割り込み機能が使われていた(Windows NT系ならint 2eh、Linuxならint 80h)が、ソフトウェア割り込みは処理が煩雑であるため遅かった。
 そこで、高速なシステムコールを実現するために、この命令が追加された。

挙動
 sysenter命令は、次のような動作をする。
 呼び出し元をスタックに積むこともなく、MSRの内容をレジスターにロードしてカーネルモードに入るだけの動作をしている。
 メモリーアクセスが無いため非常に高速ということになるが、呼び出し元をスタック上に記録していないため、デバッガーを使う場合、この命令に対応していなければ呼び出し元が分からない。

再検索