1. ホーム
  2. assembly

[解決済み] linuxのsys_readシステムコールを作ると、レジスタeaxに何が入るのでしょうか?

2022-02-15 01:31:47

質問内容

アセンブラでシステムコールsys_read(int80hでeaxに値3)を行った場合、コール後のレジスタeaxには何が格納されるのでしょうか?読み込んだ文字列の文字数でしょうか?

どのように解決するのですか?

確認 read(2) のドキュメントをご覧ください。

戻り値

成功時、読み込んだバイト数を返す(0はファイルの終端を示す)。 そして、ファイルの位置がこの数だけ前進します。これは この数値がバイト数より小さくても、エラーにはなりません。 これは、例えば、要求されたバイト数よりも少ないバイト数しかないために起こるかもしれません。 今現在、実際に利用可能なのは、(おそらく) エンドオブファイル、パイプからの読み込み、あるいは ターミナル)、または read() が信号で中断された。 オン エラーが発生した場合、-1が返され errno が適切に設定されます。 . この場合 この場合、ファイルの位置が特定されないままとなります。 が変更されます。

ヒント のドキュメントを見つけることができます。 sys_foo タイプ man 2 foo , 2 というのは システムコール .