有人知道我在哪里可以在ArmV8中找到Linux的约定吗?哪些寄存器参数必须传入,以及返回值存储在哪里。
发布于 2017-08-29 14:58:26
使用svc #0指令发出系统调用。系统调用号在寄存器X8上传递,返回值存储在X0中。
下面是一篇关于ARMv8:在ARM64中解码系统上的系统调用的有趣文章的链接
这里有一个指向http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf的链接,它可以为您提供有关ARMv8调用约定的更多信息。
您还可以从运行Linux的ARM计算机上获取在终端上运行man syscall的信息。
这是对来自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 -https://stackoverflow.com/questions/45742869
复制相似问题