システムコールとは、ユーザーモードのプログラムがカーネルの機能を呼び出すための仕組みのことです。
システムコールを実行する方法はCPUによって異なり、例えば、ソフトウェア割り込み命令を用いたものや専用の命令があります。
ソフトウェア割り込み命令を利用したシステムコールは、以下の流れで実行できます。
1. 特定のプロセッサレジスタ(以降、レジスタ)にシステムコールの機能番号を書き込む。
2. 機能番号ごとに設定された特定のレジスタにパラメータとなる値を書き込む。
3. 80h(16進数)を指定して、ソフトウェア割り込み命令を実行する。(80hの部分は、OSによって値が異なる)
4. 手順1の機能番号に対応したシステムコールが実行される。
5. システムコールの機能によっては、特定のレジスタに結果が返される。
ソフトウェア割り込み命令によるシステムコールよりも命令の実行速度を上げるために、CPUによっては、システムコール専用の命令が用意されている場合があります。