ARM汇编中LR(R14)寄存器的作用

ARM汇编中LR(R14)寄存器的作用

lr(r14)的作用问题,这个lr一般来说有两个作用:
1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。
2.异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要返回的地址。

另外注意pc,在调试的时候显示的是当前指令地址,而用mov lr,pc的时候lr保存的是此指令向后数两条指令的地址,大家可以试一下用mov pc,pc,结果得到的是跳转两条指令,这个原因是由于arm的流水线造成的,预取两条指令的结果.

一个小例子:程序一次讲48个字数据从R12作为首地址的一段连续的内存单元复制到R13作为首地址的一段连续的内存单元。代码执行前R12为源数据区首地址,R13为目标数据区首地址,R14为源数据区末地址/

。代码loop

LDMIA R12!,(R0-R11)

STMIA R13!,(R0-R11)

CMP R12,R14 ;是否达到源数据结尾

BLO loop ;若没到达源数据结尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值