【摘要】:子程序调用指令就是用来调用子程序的,它与转移指令之间最大的差别在于转移指令无须返回,而子程序执行结束后必须返回调用它的主程序。调用子程序时,首先将子程序调用指令的下一条指令的地址(断点)压入堆栈保存,然后转入所调用的子程序执行,子程序执行完毕,由返回指令把原来压入的返回地址从堆栈中弹出,返回调用程序。
这类指令主要用于控制程序的流向,它使程序具有测试、分析与判断的能力。这类指令主要包括转移指令、子程序调用与返回指令和程序中断指令等。
1.转移指令
转移指令包括无条件转移指令和条件转移指令。前者不受任何约束地将程序转移到该指令指出的任何地址去执行;后者仅当满足指令规定的条件时,才执行转移,否则顺序执行下一条指令。
2.子程序调用与返回指令
在用户编写程序的过程中,对于一些经常使用的,能够独立完成某一特定功能的程序段,常常将它独立出来作为子程序,在需要时随时由主程序调用,而不必多次重复编写,这样既简化了程序设计又节省了存储空间。(www.xing528.com)
子程序调用指令就是用来调用子程序的,它与转移指令之间最大的差别在于转移指令无须返回,而子程序执行结束后必须返回调用它的主程序。为了能够从子程序中正确返回到断点并继续执行,支持多重嵌套和递归调用,现代计算机通常用堆栈来保存返回地址。调用子程序时,首先将子程序调用指令的下一条指令的地址(断点)压入堆栈保存,然后转入所调用的子程序执行,子程序执行完毕,由返回指令把原来压入的返回地址从堆栈中弹出,返回调用程序。
除了用户自己编写的子程序以外,为了便于各种程序设计,现代计算机系统往往也提供了大量的通用子程序作为标准子程序,这些子程序放在程序库中,用户需要时,直接调用即可。
3.程序中断指令
中断一般是计算机系统出现异常情况或特殊请求时随机产生的,在计算机中,中断指令作为隐指令不提供用户使用。但在某些计算机中设置了可供用户使用的中断指令,以实现系统功能调用和程序请求,如80×86的中断指令、PDP-11的自陷指令等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。