Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15482616
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2007-10-07 18:57:13

再谈cxsf和^的实际运算过程[gliethttp]

文章来源:http://gliethttp.cublog.cn[转载请声明出处]

MSR SPSR_cxsf, r0
LDMFD {R0-R12,LR,PC}^
SPSR_cxsf的模式值自动复制到CPSR,同时r13,r14,spsr三个组内相应量值也被自动指向该模式组内局部量r13,r14,spsr.
r13=sp,r14=lr,spsr都自动转换为r0对应模式下的数值,如r0=IRQ模式,当前模式为svc,那么LDMFD {R0-R12,LR,PC}^
执行完毕之后,r13、r14都是对当前svc寄存器进行运算操作,:sp的计算结果存放到当前svc模式sp中,lr数据也是存放
到当前svc模式下的lr中,运算完毕之后r13,r14,spsr都会自动指向IRQ模式下的r13,r14,spsr[gliethttp]
因为^里边有PC寄存器操作,所以数据将恢复到当前svc模式下LR中,sp所做的运算结果存放在当前svc模式的sp下,
如果没有PC寄存器,:LDMFD {R0-R12}^,那么数据都将恢复到sys模式下对应的寄存器中,当然sp所做的运算结果
也存放到相应sys模式sp寄存器下,但是sp初始值确是当前模式下赋予sp的值,当然上边存在非法因素,
LDMFD SP, {R0-R14}^,这样sp指向的数据,将全部恢复到sys模式下的r0-r14中,因为没有pc,所以spsr_cxsf不会自动切换
STMDB LR, {R0-LR}^

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

chinaunix网友2010-04-01 12:58:10

完全没看懂……