第二类程序控制操作是程序调用和返回指令,主要有两条:
RETURN 从子程序返回
这两条指令本身可以带有条件,当测试条件满足时转入子程序或从子程序返回,也可以不带条件。如果调用和返回指令本身不带条件,则要与
条件转移指令联合使用,如果本身带有条件,
目标程序就可以简化
在执行调用指令,要保存硬件现场(主要指
程序计数器和
处理机状态字)和软件程序现场(指在子程序中要使用的
通用寄存器等);当从子程序返回时,再恢复这些现场。在设置有系统栈的计算机中,硬件现场和程序现场可以压入
堆栈。如果没有设置堆栈,则要在
主存储器中开辟出一块专门的区域或指定专门的通用寄存器来保存硬件现场。而软件程序现场的保存则由程序员自行决定。
另外中断控制指令和自陷指令(或称为过程调用指令)也属于程序调用指令。中断控制指令主要有:开中断、关中断、改变屏蔽状态、从中断程序返回等指令。自陷指令主要用来转入例行
子程序,或在程序调式过程中用来设置断点。