1)用寄存器(变量)传递参数, 在参数不多的时候采用这种方式(用的最多)。
附图实现的功能为串口发送ASCII码到上位机。,采用的就是寄存器传递参数方式。
2)用地址表传递参数
在主程序中建立一个地址表,把要传递的参数都存放到地址表中,然后将地址表的首地址通过寄存器传送到子程中,最后子程序通过地址表获取参数。
3)用堆栈传递参数
将需要传递的参数先保存到堆栈中,然后子程序再从堆栈中取出参数以达到传送参数的目的。
例如call的过程:
1)将PC+1压入堆栈保存,然后将call 后的立即数下载到PC中执行子程序,子程序执行完成后PC值还原,继续执行主程序。
2)在中断中,进行work和status的入栈出栈保护。