System calls are defined at the kernel level (OS specific) for each CPU architecture. The code you provided is x86_64 assembly, so that is your target CPU architecture. Based on your example you are using a Linux kernel. A detailed list of native system calls for x86_64 on Linux can be found here: https://filippo.io/linux-syscall-table/
You can actually edit this table on your system to create your own system calls, but be very careful when doing so! Kernel-level programming can be quite dangerous. The system call table on linux exists in the arch/x86/syscalls directory, which is in the directory that stores your kernel source.
cat /kernel-src/arch/x86/syscalls/syscall_64.tbl
As mentioned by @PeterCordes you can also find system call numbers on your machine in asm/unistd.h
, which in the case of my machine was found in /usr/include/x86_64-linux-gnu/asm/unistd_64.h
. If you are interested you should be able to find x86 calls in the same directory.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…