首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux用于Armv8的约定

Linux用于Armv8的约定
EN

Stack Overflow用户
提问于 2017-08-17 18:47:12
回答 1查看 2.5K关注 0票数 6

有人知道我在哪里可以在ArmV8中找到Linux的约定吗?哪些寄存器参数必须传入,以及返回值存储在哪里。

EN

回答 1

Stack Overflow用户

发布于 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的信息的总结

代码语言:javascript
复制
arch/ABI    instruction           syscall #  retval
arm64       svc #0                x8         x0

参数:

代码语言:javascript
复制
arch/ABI      arg1  arg2  arg3  arg4  arg5  arg6  arg7
arm64         x0    x1    x2    x3    x4    x5    -
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45742869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档