执行ret指令退出子程序此时返回地址来自

执行ret指令退出子程序此时返回地址来自,第1张

堆栈栈顶程序计数器PC。计算机官衡伏方显示,执行ret指令退出子程序此时返回咐燃携地址来自堆栈栈顶程段友序计数器PC,ret指令用栈中的数据实现修改IP的内容,从而完成近转移,执行ret指令时相当于执行。

在调用子程序之前,当前程序段的地址(在程序计数器PC中)自动压入堆栈中,然后将子程序的首地址写手仔入程序计数器PC,这样CPU就能在下次取指令的时候读取子程序段毕颂汪的程序并运行了;

子程序的最后一条语句是RET指令,当CPU执行该指令后会自动完成出栈 *** 作并将该数据写回程序计数器PC当中,而后CPU读取到的指令则是原来的主程序了;

多个子程序的嵌套也是以樱型此类推的。

子程序返回指令完整的功能是改变程序计数器的值;子程序调用指令是指调用子程序的指令,包括调用指令(转子指令)和返回指帆贺令(返主指令)。

子程序调用指令用于实现程序与程序之间的转移,与转移指令不同(转移指令用于实现同一程序内的转移)。子程序调用指令还可以进行嵌套调用,即可帆睁调用别的子程序,还可以实现递归调用,即直接或间接自己调用自态轿派己。

扩展资料:

在子程序的调用与返回过程中,子程序的入口地址是指子程序第一条指令的地址。用于调用子程序、控制程序的执行从主程序转向子程序的指令称为专注指令(子程序调用指令、过程调用指令)。为了正确调用子程序,必须在转子指令中给出子程序的入口地址。

主程序中转子指令的下一条指令的地址称为断点,断点是子程序返回主程序的返回地址,从子程序返回主程序的指令称为返回指令。为了在执行返回指令时能够正确地返回主程序,转子指令应具有保护断点的功能。

参考资料来源:

百度百科-子程序调用指令


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12340479.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存