有谁知道我在哪里可以找到 ArmV8 中 Linux 系统调用的约定?必须传入什么寄存器参数以及返回值存储在哪里。
问问题
1979 次
1 回答
3
svc #0
使用该指令发出系统调用。系统调用号通过寄存器传递,X8
返回值存储在X0
.
这是一篇关于 ARMv8 系统调用的有趣文章的链接:Decoding Syscalls in ARM64
这是ARM 64 位体系结构 (AArch64) 的过程调用标准的链接,它可以为您提供有关 ARMv8 调用约定的更多信息。
您还可以man syscall
从一些运行 Linux 的 ARM 机器上获取在终端上运行的信息。
这是来自以下信息的摘要man syscall
:
arch/ABI instruction syscall # retval
arm64 svc #0 x8 x0
论据:
arch/ABI arg1 arg2 arg3 arg4 arg5 arg6 arg7
arm64 x0 x1 x2 x3 x4 x5 -
于 2017-08-29T14:58:26.533 回答