_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 初学者希望能得到大家的指点 先谢谢了!!
Re: [求助] ARM c程序的问题
上面是arm在中断时的对堆栈的操作
首先你先看下它的汇编语言,一步一步就能明白的!
第4行和第9行 还有第8行是什么意思?
sub sp,sp,#4 改变堆栈指针
你可以看一下堆栈的顺序!