子程序的调用-相对调用
发表:2023-08-29 12:05:41 阅读:64

子程序的调用-相对调用

在实际应用中.经常会用到一些通用性的问题,这时可以将其设计成通用的程序段以供随时调用。该通用的程序段就称为子程序。利用子程序可以使程序结构更加紧凑,使程序的阅读和调试更加方便。

子程序的调用需要注意两点:一是现场的保护和恢复,二是主程序与子程序的参数传递。执行调用子程序时,在把子程序的起始地址放入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后的指令地址)存储到堆栈中。

对状态标志位的影响:无

子程序调用-相对调用

子程序调用-相对调用

 

 

电子街推荐您阅读:

全局中断标志触发与禁止的跳转

比较相等跳行

寄存器位被清零与置位跳行

I/O寄存器位清零与置位跳行

推荐品牌: