我正在阅读Robert W. Sebesta第10章子程序中的“编程语言的概念”一书。 而且我不明白为什么从子程序返回后,栈顶设置为EP的当前值减去一。
这是我不明白的句子。
“从子程序返回时,将栈顶设置为当前EP的值减1,然后将EP设置为已完成执行的子程序的激活记录实例的动态链接。” >
我了解
从子程序返回后,我认为堆栈顶部已设置为EP的当前值。但书中说,栈顶设置为当前EP值减一。
为什么EP减1,而不是EP?
这是《罗伯特·W·塞贝斯塔编程语言的概念》一书中的图片
作为第四张图片, 我认为如果将堆栈顶部设置为EP的当前值减一,则堆栈顶部应指向参数的顶部,而不是功能值的顶部。但是栈顶指向函数值的顶部。
请帮助我找出我所缺少的内容。