linux之为什么在返回 MEMORY 类型时返回 %rax 中的对象地址
del
阅读:34
2025-01-19 22:14:33
评论:0
根据 AMD64 调用约定,当返回存储在内存中的对象时,步骤如下:
- 调用方为返回的对象分配内存并将地址作为隐藏参数传递到
%rdi
中。 - 被叫填写对象。
- 被调用者返回
%rax
中对象的地址。
我想知道为什么将第三个要求添加到标准中?内存已经由调用者分配,因此不需要提醒调用者是在哪里进行分配的。返回 %rax 中的内存地址有什么意义?
请您参考如下方法:
RDI 是字符串操作的目标索引,它的值可能会作为被调用方处理的一部分被覆盖。通过累加器 RAX 返回地址是有意义的。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。