Ubuntu 上的 System V ABI 是否将返回地址放置在调用者函数的框架内或被调用者函数的框架内?

问题描述 投票:0回答:1

我的系统:在 x86_64 上运行的 Ubuntu 22.04.3。 GCC 版本 11.4.0

我问这个问题是因为就返回地址所在的框架(调用者或被调用者)而言,返回地址似乎有两种不同的表示形式。

这就是“计算机系统,程序员的视角”所展示的内容:

这就是“System V 应用程序二进制接口 AMD64 架构处理器补充”所示的内容:

正如您在 System V ABI 文档表示中所看到的,我们在当前框架(被调用/被调用函数)内有返回地址,但在本书表示中,它位于调用者框架(调用者函数)中。

这是我的问题:

  1. 什么表述是正确的?

  2. 特定框架(调用者或被调用者)内返回地址的搭配是否只是一个任意愚蠢的问题,并且没有由任何 ABI 指定?

c ubuntu stack x86-64 abi
1个回答
0
投票

来电者的框架。

查看更多详细信息此汇编代码所需的解释

© www.soinside.com 2019 - 2024. All rights reserved.