Linux (RedHat Enterprise 8) で syscall を実装しようとしていますが、その動作について少し混乱しています。私が理解していることから、syscall番号をeaxに、パラメーターをebx、ecx、edxなどに配置するラッパーをユーザーモードで実装し、適切なsyscallを呼び出すint 0x80を呼び出します。私の質問は、syscall は通常の C 関数のように記述されているため、どのレジスタにどのパラメータが含まれているかをどのように知るのでしょうか? それは慣例ですか、それともメカニズムはありますか? もしそうなら、どこでどのようにそれを行いますか?
編集: これは宿題です。私は、これを実行できるシステムコール マクロがあることを知っています。