帮忙看看这段汇编代码意思 5

1STMFDSP!,{R0-R3,R12,LR}//这里进行了现场保护那么还有必要在第三句保存SPSR吗?为什么2MRSR0,SPSR3STMFDSP!,{R0}//这对... 1 STMFD SP! , {R0-R3,R12,LR} //这里进行了现场保护那么还有必要在第三句保存SPSR吗?为什么

2 MRS R0 ,SPSR
3 STMFD SP! ,{R0}//这对花括号是什么意思,第二句读取了SPSR到R0,现在又把SPSR保存到R0,那么不是覆盖了先前的R0?那么如果是覆盖

了的话还有必要写第二句吗?
4 TST R0 ,#0X20

5 LDRNEH R0, [LR,#-2]//这句话是什么意思?

6 BICNE R0 , R0, #0XFF00

7 LDREQ R0 , [LR ,#-4]

8 BICEQ R0 ,R0 , #0XFF000000//这句话我一点也看不懂
展开
 我来答
ad394970083
2010-12-18 · TA获得超过353个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:0
展开全部
1:这里进行了现场保护,可是并没有保护SPSR中的内容,所以还是要把SPSR保存下来,等子程序返回时再把R0-R3,R12,LR、SPSR恢复。
3:STMFD是批处理指令,要求必须带上花括号,就算你处理的只是一个寄存器,也要带上花括号,这是格式要求。前一句已经把SPSR读到R0中去了,这句话的意思是把R0中的内容压栈,SP带个叹号,说明是回写指令。由于SPSR中的内容智能用MRS和MSR指令进行读写,所以要先用MRS读出来才能将其保存。第一句R0已经保存了,这里就不算是覆盖了,因为后面R0可以恢复的
5:这句指令时先变址不回写指令,意思是,如果R0中的内容不等于0x20,则将LR减2后的所对应的内存中的内容以无符号半字形式加载到R0,也就是低16位
8:由于5、6、7指令没有影响标志位,所以SPSR中的内容还是第4句判断后的结果,所以这句指令的意思是如果R0中的内容等于0x20,则将R0的高8位清零。
若有不对的地方,敬请指正……希望对你有帮助
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式