《深入理解计算机系统》中关于寄存器保存的一个不理解的问题?
在书中有这么一句话:
根据惯例,寄存器eax,edx,ecx被划分为调用者保存(caller save)寄存器。当过程P调用Q时,Q可以覆盖这些寄存器,而不会破坏P所需要的数据。
我感到有些奇怪,Q覆盖了这些调用者保存寄存器之后,那怎么恢复值?难道在覆盖调用者保存寄存器之前被压入了调用者的栈帧里面?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
caller save的意思是保存这个值的责任在caller (P), 如果P需要则应该自己保存到栈上。