架构分析:当所有寄存器都被子程序使用时,机器在跳转到新的子程序之前必须做什么?
在面向对象编程中,我们将频繁运行的小块代码组织成方法。与复制/过去相比,这减少了代码总量(以及其他优点)。在汇编语言和机器语言中,这些可重用的块称为子例程。
通常,原始例程和调用的子例程会使用许多或大部分可用寄存器。
当子程序用完所有寄存器时, 解释机器在跳到新子程序之前必须做什么。
In OO programming we organize small chunks of frequently run code into methods. This reduces the total amount of code compared to copy/past (among other advantages). In assembly and machine languages these reusable chunks are called subroutines.
Often the original routine and the subroutine called make use of many or most of the available registers.
When all registers are used up by the subroutine,
explain what the machine must do before jumping to the new subroutine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因此,被调用者寄存器作为调用序列的一部分被推送,并在子例程退出后作为返回序列的一部分恢复。此链接提供了有关此内容的更多详细信息。
So the callee registers are pushed as part of call sequence and restored after subroutine exits as part of return sequence. This link provides further details on this.