首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

哪位大侠能帮小弟我看看这段程序是什么意思啊多谢了!

2012-02-28 
哪位大侠能帮我看看这段程序是什么意思啊?谢谢了!!!这段程序是关于ARM中的中断的,我看不太懂是什么意思!哪

哪位大侠能帮我看看这段程序是什么意思啊?谢谢了!!!
这段程序是关于ARM中的中断的,我看不太懂是什么意思!哪位高手帮我解释一下啊!谢谢了
哪位朋友能帮我看看这段程序是什么意思啊!!!
IsrIRQ
      sub   sp,sp,#4
      stmfd   sp!,{r8-r9}
      ldr   r9,=I_ISPR
      ldr   r9,[r9]
      mov   r8,#0x00
0
      movs   r9,r9,lsr   #1
      Bcs   %F1
      Add   r8,r8,#4
      B   %B0
1
      ldr   r9,=HandleADC
      add   r9,r9,r8
      ldr   r9,[r9]
      str   r9,[sp,#8]
      ldmfd   sp!,{r8-r9,pc)  


[解决办法]
ldr r9,=I_ISPR
ldr r9,[r9]
mov r8,#0x00
sub sp,sp,#4
stmfd sp!,{r8-r9}
ldr r9,=I_ISPR
ldr r9,[r9]
mov r8,#0x00
0
movs r9,r9,lsr #1
; I_ISPR=I_ISPR < <1;
Bcs %F1 跳转到1
Add r8,r8,#4
B %B0
1
ldr r9,=HandleADC
add r9,r9,r8
ldr r9,[r9]
str r9,[sp,#8]
ldmfd sp!,{r8-r9,pc)

其等价的c代码大约如下

void IsrIRQ(void)
{
count=0;
do{
I_ISPR < <=1;
count+=4;
}while(I_ISPR);
HandleADC+=count;
}

热点排行