gpt4 book ai didi

assembly - 编程语言可以有自己的调用约定吗?

转载 作者:行者123 更新时间:2023-12-05 09:32:12 28 4
gpt4 key购买 nike

Windows 和 Unix 有自己的 calling-conventions for x86-64 .但是,如果一种语言需要它/从中受益,它可以有自己的调用约定供内部使用吗?例如,Swift/Python(已编译)可能会受益于拥有多个寄存器以从函数返回多个结果(因为这些语言支持)。因此,保留 3 个寄存器(raxrcxrdx)用于其语言调用约定中的返回值,是否会破坏任何内容?导致任何未注意到的错误,或在任何情况下导致未定义的行为?

此外,如果没有必要遵循该约定,那么他们为什么要为用户空间定义调用约定?

最佳答案

当然可以。剩下的问题将是与 API/操作系统的交互,您必须遵守操作系统的做事方式。

总的来说,重点可能是成本/ yield 关系。

但对于特殊目的,这是可能的,甚至可能更好(否则你为什么要这样做?)。
另外,考虑对操作系统特定事物可能产生的副作用,例如 red-zone .

关于assembly - 编程语言可以有自己的调用约定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68315024/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com