子程序的调用-相对调用
在实际应用中.经常会用到一些通用性的问题,这时可以将其设计成通用的程序段以供随时调用。该通用的程序段就称为子程序。利用子程序可以使程序结构更加紧凑,使程序的阅读和调试更加方便。
子程序的调用需要注意两点:一是现场的保护和恢复,二是主程序与子程序的参数传递。执行调用子程序时,在把子程序的起始地址放入PC前,不仅要把下一条指令的PC值保存在堆栈中,即断点保护;而且要把主程序中,在子程序NEI结束后仍有用的通用单元保护起来.称为现场保护。在子程序执行结束后,返回继续执行主程序前要回复这些通用单元的内容,称为现场恢复。
由于子程序是主程序的一部分,所以在程序执行时必然要发生数据上的联系。在调用子程序时,子程序可能会用到主程序一些单元中的数据,并且有可能在子程序中改变这些单元的数据;所以,在子程序执行完毕后,需要通过某种方式把对主程序有用的参数传回到主程序。
相对调用
RCALL k -2K≤k<2K
操作,STACK←PC+1,SP←SP-2,PC←(PC+1)+k
机器码:1101 kkkk kkkk kkkk 周期:3
说明:在PC~2K+1~2K(字)这4KB范围内调用子程序。返回地址(RCALL后的指令地址)存储到堆栈中。
对状态标志位的影响:无
电子街推荐您阅读: