Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1809110
  • 博文数量: 195
  • 博客积分: 4227
  • 博客等级: 上校
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-04 10:39
文章分类

全部博文(195)

文章存档

2013年(1)

2012年(26)

2011年(168)

分类: LINUX

2011-09-13 11:19:17

 R14是LR 即Link Register,该寄存器的作用有两种。
1.存放当前子程序的返回地址。当通过BL和BLX指令调用的子函数,R14中存储着该子函数的返回地址。在子函数中可以通过将R14中的值copy到PC,实现子函数返回。
2.在异常中断时,R14存储该异常模式将返回的地址。
由于ARM的流水线方式,MOV LR PC 时,LR中是当前地址的后两个指令的地址。如果MOV PC PC则会跳转两条指令。
关于SPSR则是CPSR的一个备份寄存器,不过USR和SYS这两种模式并没有该寄存器,其余的五种模式则存在。该register则是存储切换mode时前一个mode的CPSR。如进入SVC mode,则SVC mode的SPSR则存储着进入SVC mode前一个mode的CPSR,方便在退出该mode,恢复前一个mode时CPSR的恢复,则只需将SPSR复制进CPSR就行了。

阅读(1072) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~