帮忙看看这段汇编代码意思 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//这句话我一点也看不懂 展开
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//这句话我一点也看不懂 展开
1个回答
展开全部
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位清零。
若有不对的地方,敬请指正……希望对你有帮助
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位清零。
若有不对的地方,敬请指正……希望对你有帮助
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询