上⾯的整个过程,⽤C语⾔表⽰的话,就相当于
......
cpu_init_crit();
......
void cpu_init_crit(void)
{
......
}
⽽关于C语⾔中,函数的跳转前后所要做的事情,都是C语⾔编译器帮我们实现好了,会将此C语⾔中的函数调⽤,转化为对应的汇编代码的。其中,此处所说的,函数掉转前后所要做的事情,就是:
函数跳转前
要将当前指令的下⼀条指令的地址,保存到lr寄存器中
函数调⽤完毕后
将之前保存的lr的值给pc,实现函数跳转回来。继续执⾏下⼀条指令。
⽽如果你本⾝⾃⼰写汇编语⾔的话,那么这些函数跳转前后要做的事情,都是你程序员⾃⼰要关⼼,要实现的事情。
总结汇编中的:bl + mov pc,lr
汇编中bl + mov pc,lr = C语⾔中的⼦函数调⽤和返回
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论