glibc-2.13-1を使用して、64 ビットの Debian 4.7.2-5 Linuxシステムを実行しています。いくつかの関数呼び出しのアセンブリ コードを検索しているときに、次のようなものを見つけました。libc.a
file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <sync>:
0: b9 a2 00 00 00 mov eax,0xa2
5: 0f 05 syscall
7: 48 3d 01 f0 ff ff cmp rax,0xfffffffffffff001
d: 0f 83 00 00 00 00 jae 13 <sync+0x13>
13: c3 ret
これが何をしているのか少し混乱しています。mov eax,0xa2
これが64ビットマシンである場合、レジスタが使用されないのはなぜですかrax
(syscallはどのシステムコールを行うべきかをどのように知るのですか)要するに、これらの 5 行のコードは何をするのでしょうか?