-
基于ARM的嵌入式程序设计中子程序的返回方法为-8-1
资源介绍
子程序返回的方法
对于最简单的子程序,一条MOV指令就可以完成子程序的返回 ,如下所示:
对于在子程序中出现嵌套调用时,链接寄存器LR中的返回地址可能会在第二次调用时被覆盖,所以需要将返回地址压入堆栈来进行保存
SUB2
…
MOV
pc,r14
;把r14拷贝到r15来返回
SUB1
STMFD
r13!,{r0 – r2, r14}
;保存工作寄存器和链接
BL
SUB2
…
LDMFD
r13!,{r0 – r2,PC}
;恢复工作寄存器并返回