首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回值%eax公约

返回值%eax公约
EN

Stack Overflow用户
提问于 2015-04-17 02:08:31
回答 1查看 1.1K关注 0票数 0

当然,在i386中,%eax保存函数的返回值,是吗?不过,显然这只是惯例。是否可以更改此约定,并使返回值为%ebx或其他什么?如果要这样做,这也会使%ebx返回值到系统吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-17 02:19:57

这只是惯例,是的。由于ret指令不更改除esp以外的任何寄存器,所以可以使用任何其他方法返回值。但是,调用方和被调用方必须就返回值的位置达成一致,因此,如果要与其他代码进行互操作,所使用的调用约定必须是兼容的。在您自己的功能之间,您可以使用任何您想要的。出于效率原因,编译器还发明了针对私有功能的临时约定。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29689014

复制
相关文章

相似问题

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