[讨论] ARM c程序的问题

xiumu   2009-3-17 17:05 楼主
_irqHandler PROC
   1. STMFD   sp!,{r0-r4,r12,lr}
   2. mov     r4,#0x80000000  //中断控制寄存器首地址(假设的)
   3. ldr     r0,[r4,#0]
   4. sub     sp,sp,#4
   5. cmp     r0,#1
   6. BLEQ    C_int_handler
   7. mov     r0,#0
   8. str     r0,[r4,#4]
   9. add     sp,sp,#4
   10. ldmfd   sp!,{r0-r4,r12,lr}
   11. subs    pc,lr,#4
   12. endp

问题:一、第3行 为什么不直接用ldr r0,[r4]
      二、第4行和第9行 还有第8行是什么意思
arm 初学者希望能得到大家的指点 先谢谢了!!

回复评论 (3)

Re: [求助] ARM c程序的问题

上面是arm在中断时的对堆栈的操作
首先你先看下它的汇编语言,一步一步就能明白的!
第4行和第9行 还有第8行是什么意思?
sub     sp,sp,#4 改变堆栈指针
你可以看一下堆栈的顺序!
处处留心皆学问!
点赞  2009-3-18 08:49
谢谢啦!!
点赞  2009-3-18 19:24

Re: [求助] ARM c程序的问题

这明明是汇编程序嘛~ 
点赞  2009-5-15 11:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复