LDMFD sp!, {r0-r12,lr,pc}^ 跟 LDMFD sp!, {r0-r12,lr,pc} 有何区别

[复制链接]
7536|3
 楼主| qbasicljx 发表于 2014-2-18 22:43 | 显示全部楼层 |阅读模式
pc, DM, DSP
好像有的地方看到 LDMFD sp!, {r0-r12,lr,pc}^
有的看到 LDMFD sp!, {r0-r12,lr,pc}
aozima 发表于 2014-2-19 10:25 | 显示全部楼层
"^"的意思是指令完成后,把SPSR拷贝到CPSR。按需要而定。
^和!的解释请查阅ARM相关手册。
未来是梦 发表于 2014-2-19 10:33 | 显示全部楼层
^ 后缀的解释:

1,若在LDM指令用寄存器列表中含有pc时,会附加将SPSR拷贝到CPSR的动作。
  可以引起模式切换,通常用于中断返回,这种情况用户模式不能用,因为用户模式没有SPSR.
2,若列表中没有PC,则加载/存储的是用户模式寄存器。而不是当前模式。可用于中断中访问用户模式中的重名寄存器。
 楼主| qbasicljx 发表于 2014-2-19 10:51 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

113

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部