arm汇编编程的小经验

编了几天的汇编,发现很是麻烦,尤其是在编写中断程序时。好在功夫没有白费,总算
是成了,总结一些问题,如下:
1、编中断时,要设置好中断向量后,才能开中断;
2、在开中断的情况下,不要通过更改sp来访问堆栈中的数据,如下:
ADD sp, sp, #4
LDR r0, [sp]
上面的语句可能带来隐患:在执行上面的语句时若中断产生,中断
将context保存在堆栈中,就会冲掉原有的数据,正确的如下:
ADD r0, r0, #4
LDR r0, [r0]
3、STMFD sp!, {r3, r1, r2},该语句实际的入栈次序为R3,R2,R1,
不要认为是R2,R1,R3或r3,r1,r2;
4、在允许中断嵌套的时候,要注意堆栈的设置要足够大,此外,
嵌套的层数也不要无限大,否则,再大的堆栈都不够
5、执行mov cpsr_cxsf, #0x13后,中断并不是马上就打开了,而是要
执行完下一语句后才打开的

转载于:https://www.cnblogs.com/beinghu2/archive/2009/08/23/1552422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值