cortex-m3调用函数寄存器操作流程是什么
时间: 2023-05-25 11:02:35 浏览: 385
1. 在调用函数前,将要传递给函数的参数值压入堆栈中。
2. 调用指令(例如BL指令)将函数的地址压入堆栈中,并跳转到函数地址。
3. 在函数中,先将堆栈指针(SP)指向准备好的局部变量所在的栈帧。
4. 将函数的第一个参数值从堆栈中取出,存储到指定的寄存器中,通常是R0寄存器。
5. 执行函数的计算过程,调用其他函数,以及使用寄存器存储中间结果。
6. 当函数执行完成时,将计算结果存储到指定的寄存器(通常是R0寄存器)中。
7. 将堆栈指针还原为函数调用前的状态,销毁函数局部变量的栈帧,并将返回地址从堆栈中弹出,并使用BX指令跳转回调用函数的位置。
8. 在调用函数的代码中,将返回值从R0寄存器中读取,完成函数调用的过程。
阅读全文