最近在学习arm开发板,记录下学习的心得,也以防自己以后忘记了,
方便自己回顾旧知识,同时也希望该篇文章能帮助到有需要的朋友。
函数的调用格式:bl <子函数名>
解释:bl是调用子函数的命令,调用函数函数也一样,如:bl delay
delay: //延时函数的函数名
ldr r2, =0xfffff //伪指令,把r3赋值为0xfffff
ldr r3, =0x0 //伪指令,把r3赋值为0
delay_loop: //循环标号
sub r2, r2, #1 //r2减一,类似c语言的自减1
cmp r2, r3 //比较r2和r3的值,内部实际上就是r2-r3的操作,用于影响cpsr的z位
bne delay_loop //ne(not equal)条件执行后缀,当z=0时,就跳转到delay_loop标号
mov pc, lr //返回到主调用函数,lr装载的是跳转前pc值,子函数结束后,返回到原来的执行处