MOV PC,LR看下面这个ARM汇编吧 BL NEXT ;跳转到子程序 ......... ;NEXT处执行 NEXT .......... MOV PC,LR ;从子程序返回 这里的BL是跳转的意思,LR(R14)保存了返回地址 PC(R15)是当前地址,把LR给PC就是从子程序返回 这里有一下总结 首先 1.SP(R13) LR(R14)PC(R15) 2.lr(r14)的作用问题,这个lr一般来说有两个作用: 3.》我以前看书不懂的地方 子程序返回的三种方法 现在总结如下 1.MOV PC,LR 2.BL LR 3.在子程序入口处使用以下指令将R14存入堆栈 STMFD SP!,{<Regs>,LR} 对应的,使用以下指令可以完成子程序的返回 LDMFD SP!, {<Regs>,LR} |
|
来自: phoenixcyan > 《ARM汇编》